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 слични објави

Пребарај: #pmp

当前筛选 #pmp清除筛选
CMWP Uzbekistan

@cmwpuz · Post #569 · 04.07.2025 г., 04:55

✅Системно управлять проектами на всех этапах — от инициации до завершения; ✅строить реалистичные планы по срокам, бюджету и ресурсам; ✅эффективно управлять командой, рисками, контролировать качество и вести прозрачную коммуникацию. 🚀 Эти важнейшие компетенции отличают нашего эксперта – Алексея Летуновского, руководителя проектного консалтинга и управления данными CMWP Uzbekistan, ориентированного на результат и создание ценности для бизнеса. 🤝Мы ценим Алексея, как эксперта, который не просто "делает" проект, а руководит им, минимизируя хаос и потери. 🏅Теперь это подтверждено официально сертификацией PMP! 🌐Международная сертификация по управлению проектами PMP, выданная Project Management Institute [PMI, США] подтверждает, что специалист обладает опытом, знаниями и навыками управления проектами по стандартам PMBOK® Guide [Project Management Body of Knowledge], гарантирующим структурированный подход к проектам любой сложности. 🙂 Команда CMWP Uzbekistan усилила свою экспертизу еще одним специалистом, подтвердившим свой профессионализм признанной в мире сертификацией. 🏆ПОЗДРАВЛЯЕМ, ДОРОГОЙ АЛЕКСЕЙ, ГОРДИМСЯ ТВОИМИ ДОСТИЖЕНИЯМИ! #CMWPэксперт#CMWPэкспертиза#сертификация#PMP#ProjectManagement

Tutto Elezioni

@tuttoelezioni · Post #868 · 04.05.2025 г., 08:36

#Romania🇷🇴 #Presidenziali Nicușor #Dan, 55 anni, è originario di Făgăraș (Transilvania). È Sindaco di Bucarest dal 2020. In precedenza è stato anche deputato per la Capitale dal 2016 al 2020. Fu tra i fondatori del partito Unione Salvate la Romania (#USR|RE), di cui è stato anche Presidente tra il 2016 e il 2017; ha fondato il partito come continuazione del progetto "Unione Salvate Bucarest". È uscito dal partito il 1° giugno 2017 ed è quindi rimasto un indipendente. Dan è sostenuto dall'USR, da Forza della Destra (#FD|PPE), dal Partito #DREPT|Centro anticorruzione, dal Partito del Movimento Popolare (#PMP|PPE), da Rinnoviamo il Progetto Europeo della Romania (#REPER|RE) e da altri partiti minori. @TuttoElezioni

Libertà è ragione

@libertaeragione · Post #4377 · 19.05.2025 г., 09:31

#Elezioni#Romania#Presidenziali Risultati definitivi: Affluenza: 64,72% (+9,86 rispetto al 2019) Nicușor #Dan (supp. #USR-#DREPT-#PMP-#FD-#REPER-#PRA-#Verzii|EPP|RE|G/EFA): 53,6% George #Simion (#AUR|ECR): 46,4% Nicușor Dan eletto nuovo Presidente della Romania. In foto, la mappa del voto. @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #4366 · 05.05.2025 г., 14:00

#Elezioni#Romania#Presidenziali Risultati definitivi: Affluenza: 53,21% (+0,65 rispetto al 2024) George #Simion (#AUR|ECR): 40,96% Nicușor #Dan (supp. #USR-#DREPT-#PMP-#FD-#REPER-#PRA-#Verzii|EPP|RE|G/EFA): 20,99% Crin #Antonescu (supp. #ARo|S&D|EPP): 20,07% Victor #Ponta: 13,04% Elena #Lasconi (#USR|RE): 2,68% Lavinia #Șandru (#PUSL|Centro umanista populista): 0,64% Daniel #Funeriu: 0,43% Cristian #Terheș (#PNCR|ECR): 0,39% Sebastian #Popescu (#PNR|Populisti): 0,28% John Ion #Banu: 0,23% Silviu #Predoiu (#PLAN|Centro): 0,18% Necessario un secondo turno tra Simion e Dan. In foto, la mappa del voto. @OsservatorioEsteri