Установить свойства виджета в 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
Президент Шавкат Мирзиёев Ислом цивилизацияси марказига ташриф буюриб, халқимизнинг бой тарихий ва маънавий меросини кенг намойиш этишга қаратилган ишлар билан танишди.
—
Президент Шавкат Мирзиёев посетил Центр исламской цивилизации и ознакомился с проводимой работой по широкому представлению богатого исторического и духовного наследия нашего народа.
#Mirziyoyev#tanishuv#markaz#marifat
Prezident.uz|Facebook|Instagram|YouTube|X
Президент Шавкат Мирзиёев Ўзбекистондаги Ислом цивилизациясимарказига ташриф буюриб, сўнгги пардозлаш ва жиҳозлаш ишларини кўздан кечирди.
—
Президент Шавкат Мирзиёев посетил Центр исламской цивилизации в Узбекистане и ознакомился с ходом заключительных работ по отделке и оснащению.
#Mirziyoyev#tanishuv#markaz#marifat
Prezident.uz|Facebook|Instagram|YouTube|X
Президент Шавкат Мирзиёев аҳоли ҳаёти билан яқиндан танишиш мақсадида Сирдарё вилоятига йўл олди. Сафар асносида давлатимиз раҳбари Ўзбекистон мусулмонлари идораси раиси, муфтий Нуриддин Холиқназаров билан самимий суҳбатлашди.
—
Президент Шавкат Мирзиёев для ознакомления с условиями жизни населения отбыл в Сырдарьинскую область. По пути глава государства провел искреннюю беседу с председателем Управления мусульман Узбекистана, муфтием Нуриддином Холикназаровым.
#Mirziyoyev#uchrashuv#Ramazon#marifat
Prezident.uz|Facebook|Instagram|YouTube|X
Давлатимиз раҳбари Ўзбекистон Миллий кутубхонаси, Тошкент давлат педагогика университети ва "Янги Ўзбекистон" университети биноларининг қурилиши билан танишди.
—
Глава государства ознакомился с ходом строительства Национальной библиотеки Узбекистана, зданий Ташкентского государственного педагогического университета и Университета "Новый Узбекистан".
#Mirziyoyev#tanishuv#YangiToshkent#marifat
Prezident.uz|Facebook|Instagram|YouTube|X
Президент Шавкат Мирзиёев Ислом цивилизацияси марказига ташриф буюриб, халқимизнинг бой тарихий ва маънавий меросини кенг намойиш этишга қаратилган ишлар билан танишди.
—
Президент Шавкат Мирзиёев посетил Центр исламской цивилизации и ознакомился с проводимой работой по широкому представлению богатого исторического и духовного наследия нашего народа.
#Mirziyoyev#tanishuv#markaz#marifat
Prezident.uz|Facebook|Instagram|YouTube|X
Президент Шавкат Мирзиёев янгиланган Республика болалар кутубхонасини бориб кўрди.
—
Президент Шавкат Мирзиёев посетил обновленную Республиканскую детскую библиотеку.
#Mirziyoyev#tanishuv#marifat#kutubxona
Prezident.uz|Facebook|Instagram|YouTube|Twitter
Президент Шавкат Мирзиёев Ислом цивилизацияси марказига ташриф буюриб, халқимизнинг бой тарихий ва маънавий меросини кенг намойиш этишга қаратилган ишлар билан танишди.
—
Президент Шавкат Мирзиёев посетил Центр исламской цивилизации и ознакомился с проводимой работой по широкому представлению богатого исторического и духовного наследия нашего народа.
#Mirziyoyev#tanishuv#markaz#marifat
Prezident.uz|Facebook|Instagram|YouTube|X
#Chilonzor
#MFY
#Ekskursiya
#IslomSivilizatsiyasi
#Manaviyat
#Marifat
Chilonzor MFY raislari uchun Islom sivilizatsiyasi markaziga ma’naviy-ma’rifiy ekskursiya tashkil etildi
Chilonzor tumanidagi mahalla fuqarolar yig‘inlari raislari uchun Islom sivilizatsiyasi markaziga ma’naviy-ma’rifiy ekskursiya tashkil etildi.
Ekskursiya davomida ishtirokchilar ushbu markazning boy tarixiy merosi, ajdodlarimizning ilmiy va madaniy yutuqlari bilan yaqindan tanishdilar. Tarix va kelajak o‘rtasida mustahkam ma’naviy ko‘prik vazifasini o‘tayotgan mazkur maskan MFY raislarida katta qiziqish uyg‘otdi.
Tashrif davomida ular ko‘plab yangi va qiziqarli ma’lumotlarga ega bo‘lib, yurtimizning boy ma’naviy merosi yuzasidan chuqur taassurotlar bilan qaytdilar.
🔵@Chilonzor_tuman_hokimligi
📚Ma'rifat johillikka qarshi: TIUE talabalari bilan dialog.
Tashkent International University of Educationda talabalar bilan ma'naviy-axloqiy rivojlanish va bag'rikenglik madaniyatini shakllantirishga bag'ishlangan ma'rifiy uchrashuv bo'lib o'tdi.✔️
Tadbirda Din ishlari qo'mitasi vakili Rahimjon Ashirmatov, shuningdek O'zbekiston Xalqaro Islom akademiyasi dotsenti Anvar Hudo'yorov ishtirok etdi.
📌 Uchrashuv doirasida "Ma'rifat johillikga qarshi" mavzusida suhbat bo'lib o'tdi, uning davomida ekspertlar talabalar bilan dinni to'g'ri tushunish, diniy bag'rikenglik ahamiyati, hamda destruktiv va ekstremistik g'oyalar tarqalish xavflari masalalarini muhokama qildi.
Alohida e'tibor ta'lim roli, bilimga intilish va milliy hamda umuminsoniy qadriyatlarga hurmat ko'rsatish yoshlarning uyg'un rivojlanishining muhim omillari sifatida qaratildi.
🗣️ Uchrashuv oxirida talabalar o'zlarini qiziqtirgan savollarni berishdi va ma'ruzachilar bilan ochiq dialogda qatnashdi.
#TIUE#Marifat#Bagrikenglik#Talim#Yoshlar
〰️〰️〰️
📚Просвещение против невежества: диалог со студентами в TIUE.
В Tashkent International University of Education состоялась просветительская встреча со студентами, посвящённая вопросам духовно-нравственного развития и формирования культуры толерантности.✔️
В мероприятии приняли участие представитель Комитета по делам религий Рахимжон Аширматов, а также доцент Международной Исламской Академии Узбекистана Анвар Худоёров.
📌 В рамках встречи состоялась беседа на тему «Просвещение против невежества», в ходе которой эксперты обсудили со студентами вопросы правильного понимания религии, значимость религиозной толерантности, а также риски распространения деструктивных и экстремистских идей.
Особое внимание было уделено роли образования, стремлению к знаниям и уважению к национальным и общечеловеческим ценностям как важным факторам гармоничного развития молодёжи.
🗣️ В завершение встречи студенты смогли задать интересующие вопросы и принять участие в открытом диалоге со спикерами.
#TIUE#Просвещение#Толерантность#Образование#Молодежь