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

Резултати

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

Пребарај: #stelaonutu

当前筛选 #stelaonutu清除筛选
Renato Usatîi

@renatousatyy · Post #4542 · 25.08.2025 г., 10:32

Stela Onuțu, primarul orașului Glodeni: Așa se construiește Independența – cu inimă, cu răbdare și cu dragoste de oameni! În ajunul Zilei Independenței, primarul orașului Glodeni, Stela Onuțu, Partidul Nostru, a vorbit despre pașii concreți făcuți pentru dezvoltarea localității și despre planurile de viitor: Am asfaltat străzi și trotuare, am aprins lumina pe străzi, am amenajat locuri unde oamenii să se odihnească și copiii să se joace. Reabilităm grădinițele, termoizolăm clădirile publice. Copiii noștri cresc în siguranță, iar tinerii au acum unde face sport. Știm unde vrem să ajungem. Și nu ne oprim aici. Urmează: Stația de epurare, drumuri și scuaruri noi, Parcul Tehnologic Multifuncțional – investiții, locuri de muncă, viitor sigur pentru Glodeni. Dacă am reușit aici, vom reuși și pentru toată Moldova. 🇲🇩 La mulți ani, Moldova! 💙 La mulți ani, Glodeni! --- Стела Онуцу, примар Глодян: Так строится Независимость – с душой, терпением и любовью к людям! Накануне Дня независимости избранная от Нашей Партии примар Глодян Стела Онуцу рассказала о конкретных шагах по развитию населённого пункта и планах на будущее: Мы заасфальтировали улицы и тротуары, включили уличное освещение, обустроили места для отдыха для взрослых и игр для детей. Мы ремонтируем детские сады, утепляем общественные здания. Наши дети растут в безопасности, а молодёжи теперь есть где заниматься спортом. Мы знаем, чего хотим и не остановимся на этом. Впереди много работы: очистные сооружения, новые дороги и скверы, Многофункциональный технологический парк – инвестиции, рабочие места, надёжное будущее для Глодян. Мы добились успеха здесь и добьёмся его для всей Молдовы. 🇲🇩 С наступающим Днем независимости, Молдова! 💙 С наступающим праздником, Глодяны! #PartidulNostru#НашаПартия#DoarPentruMoldova#ТолькоЗаМолдову#Glodeni#StelaOnutu#Глодяны