@instavine · Post #1306 · 19.12.2017 г., 14:00
Relationship Goals💁🏻♀️ ------- #christian
Hashtags
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
Пребарај: #christian
@instavine · Post #1306 · 19.12.2017 г., 14:00
Relationship Goals💁🏻♀️ ------- #christian
Hashtags
@instavine · Post #522 · 28.06.2016 г., 11:14
When your mom asked you to clean your room 3 weeks ago but you forgot😂 Когда мама попросила убраться в комнате 3 недели назад, но ты забыл😂 #christian
Hashtags
@instavine · Post #471 · 18.06.2016 г., 11:45
What you're supposed to do during a fire VS Reality Что вы должны сделать при пожаре VS Реальность #christian
Hashtags
@fight4f · Post #8534 · 09.07.2024 г., 10:52
West Bank 巴勒斯坦基督徒在伯利恆北入口懸掛耶路撒冷十字旗, 並向以色列士兵投擲石塊。 https://t.me/Hezbollah_ru/2646?single #Christian #Palestine
Hashtags
@instavine · Post #690 · 17.08.2016 г., 04:09
The Hypnotist. 🙈😂 ----------------------- #kingbach w/ #christian
Hashtags
@instavine · Post #685 · 12.08.2016 г., 09:08
That helpful friend. 😎😂 --------------------------- "Полезный" друг. --------------------------- #kingbach w/ #christian
Hashtags
@moscowphotog · Post #2270 · 15.10.2025 г., 17:04
🚨🇮🇷 There is about 1 million Christians in Iran and over 600 churches in cities like Tehran, Isfahan, Tabriz, Urmia, and Shiraz. Christianity is officially recognized in #Iran unlike in Israel, where #Christian communities face discrimination and shrinking numbers. The more you know.
Hashtags
@instavine · Post #1268 · 26.09.2017 г., 02:34
The sick robber. 😷😂 ---------- Больной грабитель ---------- #kingbach w/ #christian#curtislepore
Hashtags
@EvaKarene_Bartlett · Post #30203 · 28.03.2026 г., 07:36
#Christian neighborhoods in #Damascus protesting in the middle of the night after targeting the Christians in #Hama by the Islamist gangs calling themselves a government @TheAlawiteEcho The Syrian barbaric islamist gangs are now raiding and vandalizing the #Christian city of Skailbiyah in #Hama after they attacked every single non-Sunni sect and religion https://t.co/GX12QdO06L View tweet
Hashtags
@instavine · Post #830 · 08.10.2016 г., 14:01
If you go thru my phone I'll know. 🕵😂 --------------------- Если ты тронешь мой телефон, я узнаю об этом. 🕵😂 ---------------------- #kingbach w/ #loulou_gonzalez#christian
@instavine · Post #764 · 12.09.2016 г., 14:11
💀😂 ------------------------ #curtislepore w/ #christian#brentrivera
@instavine · Post #757 · 08.09.2016 г., 12:29
#curtislepore w/ #brentrivera#christian