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

Резултати

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

Пребарај: #uzauto

当前筛选 #uzauto清除筛选

‌В UzAuto Motors считают, что перебоев в работе системы UzAuto Savdo не было Однако система не работала: ни войти, ни заключить договор на #Cobalt с первого раза было практически невозможно. И тому есть сотни свидетельств в социальных сетях. Причем тут интересна сама официальная формулировка – “перебоев в работе не наблюдалось”, то есть может они и были, но вот наблюдатели “перебоев” не увидели. Не понятны причины, почему такая серьезная компания, как #UzAuto Motors, вместо того чтобы признать технические трудности и работать над их устранением, выдает желаемое за действительное, из-за чего теряет последние остатки доверия покупателей. ⚡ Читать далее » https://www.autostrada.uz/axborot-1984/ 🚀 Автострада: https://t.me/+pYJdxD573EM3MjFi 💬 Группа: https://t.me/+SlnKAbSFWiAwODli

Завтра, в 10:00, если не случится очередной саботаж, откроются договора на Cobalt #UzAuto Motors выставит на продажу неоплаченные договора на #Chevrolet#Cobalt. 🚀 Автострада: https://t.me/+pYJdxD573EM3MjFi 💬 Группа: https://t.me/+SlnKAbSFWiAwODli

“UzAuto Motors Powertrain” AJ korxonasiga tashrif 🇺🇿 Biznes va tadbirkorlik oliy maktabining tinglovchilari amaliy o‘quv jarayoni doirasida “UzAuto Motors Powertrain” aksiyadorlik jamiyatiga tashrif buyurishdi. Uchrashuv davomida tinglovchilar zavodning ishlab chiqarish liniyalari, dvigatel yig‘ish jarayonlari va ilg‘or texnologik yechimlar bilan yaqindan tanishish imkoniga ega bo‘ldilar. Kompaniya mutaxassislari tinglovchilarga dvigatel ishlab chiqarishning har bir bosqichi — dizayn, yig‘ish, sinov va sifat nazorati jarayonlari haqida batafsil ma’lumot berishdi. Shuningdek, avtomobilsozlik sanoatida qo‘llanilayotgan zamonaviy innovatsion yechimlar hamda ishlab chiqarishning raqamlashtirilgan boshqaruv tizimini namoyish etishdi. 🎓 Tashrif yakunida tinglovchilar o‘z taassurotlari bilan o‘rtoqlashib, korxonaning texnologik rivojlanish darajasi va zamonaviy ishlab chiqarish tizimlari ularda katta qiziqish uyg‘otganini ta’kidladilar. 🇷🇺Подробнее 🇬🇧More #GSBE#GraduateSchool#UzAuto#Engine#Study#Education 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube

“UzAuto Motors Powertrain” AJ korxonasida amaliyot 🇺🇿 Biznes va tadbirkorlik oliy maktabi tinglovchilari "UzAuto Motors Powertrain" AJ korxonasiga tashrif buyurishdi. Tashrif davomida ishtirokchilar zavodning ishlab chiqarish jarayonlari bilan bevosita tanishib ilg‘or texnologiyalar va avtomobil sanoatining ichki tizimini o‘rgandilar. 📈 Korxona mutaxassislari tomonidan kompaniya faoliyati, ishlab chiqarish quvvatlari hamda eksport salohiyati haqida batafsil ma’lumotlar taqdim etildi. 🎓 Bu kabi tashriflar tinglovchilarga nazariy bilimlarni real ishlab chiqarish muhiti orqali mustahkamlash, zamonaviy menejment yondashuvlarini amalda ko‘rish imkonini beradi. 🇷🇺Подробнее 🇬🇧More #GSBE#GraduateSchool#UzAuto#Engine#Study#Education 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube