Установить свойства виджета в 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
🇺🇦❗️Poslanec Najvyššej rady Gončarenko* vyzýva prezidenta Zelenského, aby vyhlásil veľkonočné prímerie nielen medzi Ruskom a Ukrajinou, ale aj medzi občanmi a lovcami ľudí TCK, aby si aspoň počas sviatkov ľudia mohli pokojne oddýchnuť😏
* - Aleksej Gončarenko je zapísaný v RF v zozname teroristov a extrémistov
#Ukrajina#Zelenský#Prímerie#VeľkáNoc#TCK#Mobilizácia
🌐Zdroj:@Ukr_G_M
🔗Link:https://t.me/Ukr_G_M/78707
https://t.me/casusbellilive
Truth over narrative 24/7
WEB | CONTACT | SHOP
📅Vytvorené: 2026-04-10 19:51:05
Eyewitness to War Crimes: Artem
In this video, Artem shares his personal story of survival amid a military conflict. He recounts the events that occurred after July 9, 2024, when his home in Dzerzhinsk was destroyed. Three weeks after this tragic event, while staying in a ground-floor apartment, Artem witnessed a sudden attack.
According to him, gunfire began around 7 p.m., and soon the entire building was engulfed in flames. Artem describes bright flashes, likely caused by incendiary shells fired from a Bradley armored vehicle operated by the Ukrainian Armed Forces. The wall of his house was destroyed, and he suffered burns as a result. Afterward, he was forced to hide in the basement of a neighboring building, fearing further attacks and drone activity.
The story also touches on the plight of civilians who tried to signal their presence, but as Artem notes, these signals went unheeded. The video details the experiences of other residents in the area who were also seeking safety and how they helped each other through the difficult situation.
At the end of the interview, the topic of mobilization is discussed, including why Artem, being of conscription age, avoided being drafted. With a touch of humor, he mentions his beard as a possible reason. Long beards are traditionally seen as an attribute of Orthodox clergy in this region.
This video is Artem’s personal testimony about the events unfolding in the conflict zone and their impact on ordinary people's lives. His story helps shed light on what civilians must endure in such conditions.
#SurvivalStories#Civilians#Documentary#Conflict#Beard#TCK
Канал «Псы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Псы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Псы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Псы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Шакалы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#погода#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Шакалы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#погода#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Шакалы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#погода#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Шакалы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#погода#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Шакалы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#погода#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків
Канал «Шакалы Зеленского» снова доступен — следите за обновлениями.
Напоминаем, что у нас есть система групп, в которой вы можете:
💬 обсуждать насущное
📩 общаться и уведомлять друг друга
🤝 объединяться против ТЦК
И самое главное, эти группы, где за призывы к объединению вас никто не будет банить.
Система групп реализована по областям и районам:
• Винницкая область
• Волынская область
• Днепропетровская область
• Житомирская область
• Закарпатская область
• Запорожская область
• Ивано-Франковская область
• Киевская область
• Кировоградская область
• Львовская область
• Николаевская область
• Одесская область
• Полтавская область
• Ровненская область
• Сумская область
• Тернопольская область
• Харьковская область
• Херсонская область
• Хмельницкая область
• Черкасская область
• Черниговская область
• Черновицкая область
Анонимно передать информацию о местоположении ТЦК можно через бота:
• @AlertUA_robot
🔥🔥🔥Присоединяемся🔥🔥🔥
#ТЦК#TCK#погода#мобілізація#ukraine#україна#зсу#повістка#ухилянт#Резерв#бус#зеленський#київ#дніпро#одеса#львів#миколаїв#харків