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

Резултати

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

Пребарај: #physicaltechnicalinstitute

当前筛选 #physicaltechnicalinstitute清除筛选

🤔Yarimo‘tkazgichlar sohasini rivojlantirish istiqbollari 🎓 Biznes va tadbirkorlik oliy maktabida Malayziya va Koreya ekspertlari, vazirliklar, ilmiy-tadqiqot institutlari va oliy ta’lim muassasalari vakillari ishtirokida yarimo‘tkazgichlar sanoatini rivojlantirish masalalariga bag‘ishlangan davra suhbati bo‘lib o‘tdi. 🌀 Tadbir ochilishida Biznes va tadbirkorlik oliy maktabi vakili so‘zga chiqib, O‘zbekistonda yarimo‘tkazgichlar sohasini rivojlantirish istiqbollari, ilmiy-amaliy tadqiqotlarning ahamiyati hamda xorijiy tajribani o‘rganish zarurligini ta’kidladi. ✅ Shundan so‘ng ishtirokchilar kadrlar tayyorlash, ilmiy ishlanmalarni amaliyotga tatbiq etish va ishlab chiqarishda mahalliylashtirish masalalarini muhokama qildilar. Malayziya va Koreya ekspertlari o‘z mamlakatlari tajribasi, mavjud muammolar va ularni yechish bo‘yicha olib borilayotgan ishlarga oid ma’lumotlar bilan o‘rtoqlashdi. Shuningdek, “O‘zeltexsanoat” uyushmasi, Ion-plazma va lazer texnologiyalari instituti, Yarimo‘tkazgichlar fizikasi va mikroelektronika instituti, hamda boshqa tashkilotlarning tashabbuslari taqdim etildi. 🤝 Yakunida ishtirokchilar ilmiy ishlanmalar asosida yarimo‘tkazgich mahsulotlari ishlab chiqarish, komponentlarni mahalliylashtirish, kadrlar tayyorlash va xalqaro hamkorlikni kengaytirish bo‘yicha hamkorlik qilishga kelishib oldilar. 🇷🇺RU 🇬🇧ENG #GSBE#GraduateSchool#PhysicalTechnicalInstitute#StartupProjects 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube

🧊Yarimo‘tkazgichlar va mikroelektronika sohasida innovatsion hamkorlik yo‘lga qo‘yilmoqda 🇺🇿O‘zbekiston Fanlar akademiyasi Fizika-texnika instituti va Biznes va tadbirkorlik oliy maktabi o‘rtasida yarimo‘tkazgichlar va mikroelektronika sohasini rivojlantirish bo‘yicha innovatsion hamkorlik yo‘lga qo‘yilmoqda. Uchrashuvda institutda yarimo‘tkazgichlar yo‘nalishida olib borilayotgan ilmiy-tadqiqot ishlar, institut yo‘nalishining boshqa ITlardan farqi va o‘rni, dizayn markazi tashkil etish loyihasi, xalqaro hamkorlik, O‘zbekistonda yarimo‘tkazgich va mikroelektronika mahsulotlari ishlab chiqarish xolati va imkoniyatlari, startap loyihalar amalga oshirish bo‘yicha o‘zaro hamkorlik masalalari muhokama qilindi. 🔹Batafsil 🇷🇺RU 🇬🇧ENG #GSBE#GraduateSchool#PhysicalTechnicalInstitute#StartupProjects 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube