TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени. btn = QPushButton("Click Me") btn.setProperty("flat", True) Это аналогично вызову btn.setFlat(True) Если указать несуществующее свойство, то оно просто создается btn.setProperty("btnType", "super") Получить его значение можно методом .property(name) btn_type = btn.property("btnType") Когда это может быть полезно? ▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно widget = QWidget() widget.setProperty('my_data', 123) print(widget.property('my_data')) ▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn". Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат. Да, но y ObjectName есть ограничение - только строки. ▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных widget.setProperty('my_data', {'Key': 'value'}) widget.setProperty('order', 1) all_widgets.sort(key=w: w.property('order')) Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта widget.order = 1 widget.my_data = 123 Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение. ▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства. Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль. Просто запустите этот код from PySide2.QtWidgets import * if __name__ == "__main__": app = QApplication([]) widget = QWidget(minimumWidth=300) layout = QVBoxLayout(widget) btn1 = QPushButton("Action 1") btn2 = QPushButton("Action 2") btn3 = QPushButton("Action 3", flat=True) layout.addWidget(btn1) layout.addWidget(btn2) layout.addWidget(btn3) # добавим кастомное свойство одной кнопке btn1.setProperty("btnType", "super") # добавляем стили widget.setStyleSheet( """ QPushButton[btnType="super"] { background-color: yellow; color: red; } QPushButton[flat="true"] { color: yellow; } """ ) widget.show() app.exec_() С помощью селектора мы избирательно назначили стили на конкретные кнопки. Как получить список всех кастомный свойств? Функция получения списка кастомных свойств отличается от получения дефолтных. def print_widget_dyn_properties(widget): for prop_name in widget.dynamicPropertyNames(): property_name = prop_name.data().decode() property_value = widget.property(property_name) print(f"{property_name}: {property_value}") #tricks#qt

Hashtags

Резултати

Пронајдени 4 слични објави

Пребарај: #binaries

当前筛选 #binaries清除筛选
Universe Mysteries 🪐

@cosmomyst · Post #621 · 14.01.2026 г., 12:21

🪐 Deep in the constellation Draco lies the pulsar PSR J2222−0137, a unique spinning neutron star about 900 light-years from Earth that forms a binary system with a faint white dwarf. PSR J2222−0137 spins once every 33 milliseconds, and its partner is one of the coolest known white dwarfs, so cold that its surface may be made of crystallized oxygen—offering a rare glimpse of two extreme stellar remnants circling each other in quiet cosmic partnership. ✨ #pulsars⚡#binaries⚡#neutronstars⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #450 · 23.10.2025 г., 22:21

🪐 The star AR Scorpii, located about 380 light-years away in the constellation Scorpius, is an unusual binary system where a rapidly spinning white dwarf blasts powerful beams of energy at its red dwarf companion. Unlike typical stars, AR Scorpii pulses in visible light and radio waves every two minutes as its magnetic field accelerates particles, making it the first known "white dwarf pulsar" in our galaxy. ✨ #unusualstars⚡#binaries⚡#pulsars⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #431 · 16.10.2025 г., 12:21

🪐 The star VFTS 352, located in the Tarantula Nebula about 160,000 light-years away, is actually two massive stars orbiting each other so closely that their outer layers touch—creating a rare "overcontact binary." This unusual system is on the verge of merging, and both stars are so hot and bright that their shared atmosphere fuses them together, making VFTS 352 one of the most extreme examples of stellar partnership ever found. ✨ #unusualstars⚡#binaries⚡#TarantulaNebula⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries 👉more Channels ​

Universe Mysteries 🪐

@cosmomyst · Post #60 · 02.08.2025 г., 03:11

🪐 The exoplanet Kepler-16b orbits not one, but two stars, forming a real-life counterpart to a Tatooine-like world in the constellation Cygnus. This Saturn-sized planet experiences double sunrises and sunsets as it circles both its orange and red dwarf hosts, creating a celestial theater found nowhere in our own solar system. ✨ #exoplanets⚡#binaries⚡#kepler⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries