Установить свойства виджета в 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
O'zida barcha ezgu niyatlar, xalqlar an'anasi va qadr-qimmatlarini aks ettiruvchi ushbu muqaddas va muborak kunda CNC Uzbekistan jamoasi yurtdoshlarimizni va barcha mo'min-musulmonlarni mehr-muhabbat va sahovat bayrami — Qurbon Hayiti bilan chin yurakdan tabriklaydi! Ushbu ezgulik kuni xonadoningizga baraka, osoyishtalik va baxt olib kelsin! Ayyom kunda ko'zlar ko'ngil shodligiga, qalblar iymon nuriga, xonadonlar esa mehr nuriga to'lishini tilab qolamiz! Ezgu va sof niyatlar yil davomida sizlarni tark etmasin
В этот священный день праздника Курбан Хайит, отражающий в себе благородные цели , исторические обычаи, ценности и традиции нашего народа, команда CNC Uzbekistan поздравляет всех жителей республики и желает мира и процветания домам, душевного умиротворения и светлых надежд, чтобы все самые лучшие помыслы и добрые намерения сопровождали их путь весь год.
Пусть этот праздник принесет счастье, объединит все семьи, укрепит веру и станет поводом для радости!
#cnc#cncelectric#cncuzbekistan #2021
‼️Қадрли дўстлар!‼️
21 апрел кунидан бошлаб CNC Uzbekistan махсулотларни хавфсиз етказиб бериш ҳизматини таклиф килади.🚚
Сиз маҳсулотларимизга телеграм бот @CNC_Uzbekistan_bot ёки қуйидаги телефон рақамлари орқали буюртма беришингиз мумкин:
📱+998 99 8440030
+998 99 8430030
+998 99 8340030
🍀Сиз ва яқинларингизга узоқ умр ва сиҳат саломатлик тилаймиз!
——————————————————
‼️Дорогие друзья! ‼️
C 21 апреля CNC Uzbekistan предлагает безопасную доставку товаров до Вашей двери.🚚
Вы можете заказать товары через телеграм бот @CNC_Uzbekistan_bot или по следующим телефонным номерам:
📱+998 99 8440030
+998 99 8430030
+998 99 8340030
🍀Желаем Вам крепкого здоровья, берегите себя и своих близких!
#cnc#cncelectric#cncuzbekistan#cnctashkent
‼️Қадрли дўстлар!‼️
Коронавирус инфекцияси тарқалишини олдини олиш мақсадида, бизнинг Жомий бозоридаги дўконимиз 24-мартдан 10-апрелгача ёпиқ бўлади.
CNC Uzbekistan ўз мижозларини қадрлайди ва уйингизгача хавфсиз етказиб бериш ҳизматини таклиф килади.🚚
✅Биз сизларга онлайн тарзда товарни сотиб олишингиз учун Telegram bot ни таклиф этамиз —->>>> @CNC_Uzbekistan_bot
Уйингиздан чиқмаган холда маҳсулотларимизни ҳарид қилинг!
🍀Сиз ва яқинларингизга узоқ умр ва сиҳат саломатлик тилаймиз!
———————————————--
‼️Дорогие друзья! ‼️
В целях недопущения распространения коронавируса, наш магазин на рынке Джами будет закрыт с 24 марта по 10 апреля.
CNC Uzbekistan ценит своих клиентов, и предлагает безопасную доставку товаров до Вашей двери 🚚
✅Мы запускаем онлайн заказ товаров через Telegram bot —->>>> @CNC_Uzbekistan_bot
Заказывайте в нашем онлайн Telegram bot не выходя из дома!
🍀Желаем Вам крепкого здоровья, берегите себя и своих близких!
#cnc#cncelectric#cncuzbekistan#cnctashkent
🏣☎️Адреса и контактные телефоны официальных дилерских центров CNC electric в Узбекистане:
📍Ташкент:
Адрес: ул. Уста ширин 136
т. 71 228 02 11
м. 99 834 00 30
📍Коканд:
Адрес: г. Коканд, ул. А. Навои 142А
м. 94 137 08 08
м. 90 305 55 57
📍Маргилан:
Адрес: г. Маргилан, ул Хиёбон 292
м. 91 666 76 66
м. 90 132 55 06
📍Андижан:
Адрес: г. Андижан, строительный базар "Шинам" (быв. Трикотаж) магазин №233
м. 91 491 70 08
м. 99 970 67 00
📍Наманган:
Адрес: г. Наманган, ул. Туракурган 192А
м. 93 265 28 58
м. 99 977 24 14
📍Карши:
Адрес: г. Карши ул. Узбекистан 296
м. 97 310 70 81
м. 91 637 70 10
📍Ургенч:
Адрес: г. Ургенч, Галаба КФЙ
м. 95 602 42 24
м. 99 966 93 39
#cnc#cncelectric#cnctashkent#cncuzbekistan
Qadrli do'stlar!
CNC Uzbekistan jamoasi vatandoshlarimizni mamlakatimiz asosiy bayrami - Oʻzbekiston Respublikasi mustaqilligining 30 yilligi bilan chin qalbdan muborakbod etadi. Har bir oilaga farovonlik, mustahkam sogʻliq, ulkan muvaffaqiyatlar hamda yurtimiz yuksalishini tilaydi.
______
Дорогие друзья!
Коллектив CNC Uzbekistan искренне поздравляет своих соотечественников с главным государственным праздником – 30-летием Независимости Республики Узбекистан и желает каждой семье крепкого здоровья, благополучия, огромных успехов и свершений во благо нашей страны.
#cnc#cncuzbekistan#cncelectric#uzbekistan
Азиз дўстлар ва ҳамкасблар!
Сизга катта мамнуният билан "Фаол сафдо ва мижоз эътирозларини ўрганиш хамда ишлаб чиқиш усуллари" мавзусидаги сўнгги ўқув-семинаридан видео репортажни тақдим этмоқчимиз!
Дорогие друзья и коллеги!
С огромным удовольствием хотим представить вам видеоотчет с прошедшего семинара-тренинга на тему "Активные продажи и техника отработки возражений клиентов".
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция
Ассалом алейкум қадирли дўстлар!
Сизга шуни мамнуният ила айтмоқчимизки, 31 июль куни "SKB Energy Company" лабораториясида эксперт Сарвар Қурбонов ва Шерали Исаков билан биргаликда CNC Electric компанияси электротехник махсулотларини текширув-синов амалиётни ўтказдик! Мархамат ушбу синов амалиётни видеосини кўришингиз мумкин.
CNC Electric - бу ишончлийлик, аниқлик ва юқори сифат демакдир!
Добрый день друзья и коллеги!
Рады сообщить что 31 Июля совместно с лабораторией "SKB Energy Company", с экспертами - Сарваром Курбоновым и Шерали Исаковым провели испытания электротехнических продуктов от компании CNC Electric! Просим ознакомиться с видеозаписями во вложении.
CNC Electric - это надежность, точность и высшее качество!
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция
Промежуточные реле применяются в схемах управления для коммутации силовых цепей от источника с малым током. Также они нужны для сборки схемы удержания контактов, повторения сигнала и вывода на индикаторы, дублирование на выносные пульты управления, и т. д.
Очень часто данные аппараты используют в противоаварийных системах, промышленном оборудовании, устройстве релейной защиты и на электроэнергетических объектах.
Для более подробной информации просим Вас посетить наш магазин или обратиться к нам по указанным телефонам.
🏫Адрес: Ташкент, ул. Уста Ширин, 136.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Джахонгир
(95) 169-22-10 Магазин
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция
Реле времени — реле, предназначенное для создания независимой выдержки времени и обеспечения определённой последовательности работы элементов схемы. Реле времени применяется в случаях, когда необходимо автоматически выполнить какое-то действие не сразу после появления управляющего сигнала, а через установленный промежуток времени.
Для более подробной информации просим Вас посетить наш магазин или обратиться к нам по указанным телефонам.
🏫Адрес: Ташкент, ул. Уста Ширин, 136.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Джахонгир
(95) 169-22-10 Магазин
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz, www.elcom.uz
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#cnc#cncelectric#cncuzbekistan#cnctashkent#электротехническаяпродукция