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

Резултати

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

Пребарај: #rsa

当前筛选 #rsa清除筛选

Драконовы Горы в ЮАР – место, где реальность сливается с фантазией Драконовы Горы в ЮАР – удивительный и мистический уголок природы, который поражает своей красотой и величием. Массивная горная цепь, вытянувшаяся на горизонте, словно обиталище сказочных драконов, включает в себя самые высокие горы в ЮАР. Большая часть территорий Драконовых гор объявлена объектом Всемирного наследия ЮНЕСКО. ____ The Drakensberg in South Africa – a place where reality meets fantasy The Drakensberg in South Africa is a mystical corner of nature that amazes with their beauty and grandeur. The massive mountain range, stretching across the horizon like the dwelling place of fairy dragons, includes the highest mountains in South Africa. Much of the Drakensberg area has been declared a UNESCO World Heritage Site. #RSA # ЮАР

Hashtags

Comisia Electorală Centrală

@cecmoldova · Post #3578 · 04.05.2026 г., 07:51

‼️𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟒 𝐦𝐚𝐢 𝟐𝟎𝟐𝟔, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟑𝟎𝟒 𝟖𝟐𝟖 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #3539 · 01.04.2026 г., 14:08

‼️𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟏 𝐚𝐩𝐫𝐢𝐥𝐢𝐞 𝟐𝟎𝟐𝟔, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟑𝟎𝟒 𝟔𝟗𝟏 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #3502 · 02.03.2026 г., 11:19

‼️𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟐 𝐦𝐚𝐫𝐭𝐢𝐞 𝟐𝟎𝟐𝟔, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟕 𝟗𝟔𝟎 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #3467 · 02.02.2026 г., 12:52

‼️𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟐 𝐟𝐞𝐛𝐫𝐮𝐚𝐫𝐢𝐞 𝟐𝟎𝟐𝟔, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟖 𝟖𝟗𝟒 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #3444 · 02.01.2026 г., 09:35

‼️𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟐 𝐢𝐚𝐧𝐮𝐚𝐫𝐢𝐞 𝟐𝟎𝟐𝟔, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟗 𝟕𝟗𝟒 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #3082 · 01.08.2025 г., 10:19

‼️𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟏 𝐚𝐮𝐠𝐮𝐬𝐭 𝟐𝟎𝟐𝟓, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟖 𝟒𝟒𝟑 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #2976 · 01.07.2025 г., 14:43

🔵𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟏 𝐢𝐮𝐥𝐢𝐞 𝟐𝟎𝟐𝟓, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟕 𝟓𝟗𝟔 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #2911 · 02.06.2025 г., 14:04

📌𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟐 𝐢𝐮𝐧𝐢𝐞 𝟐𝟎𝟐𝟓, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟕 𝟒𝟗𝟗 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #2818 · 02.05.2025 г., 12:32

📌𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟐 𝐦𝐚𝐢 𝟐𝟎𝟐𝟓, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟕 𝟓𝟎𝟐 #CECMoldova#DemocrațiaContează#RSA

Comisia Electorală Centrală

@cecmoldova · Post #2780 · 01.04.2025 г., 14:13

📌𝐍𝐮𝐦ă𝐫𝐮𝐥 𝐚𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, î𝐧𝐬𝐜𝐫𝐢ș𝐢 î𝐧 𝐑𝐞𝐠𝐢𝐬𝐭𝐫𝐮𝐥 𝐝𝐞 𝐒𝐭𝐚𝐭 𝐚𝐥 𝐀𝐥𝐞𝐠ă𝐭𝐨𝐫𝐢𝐥𝐨𝐫, 𝐥𝐚 𝐝𝐚𝐭𝐚 𝐝𝐞 𝟏 𝐚𝐩𝐫𝐢𝐥𝐢𝐞 𝟐𝟎𝟐𝟓, 𝐞𝐬𝐭𝐞 𝐝𝐞 𝟑 𝟐𝟗𝟕 𝟑𝟖𝟔 #CECMoldova#DemocrațiaContează#RSA

12
ПретходнаСтраница 1 од 2Следна