Установить свойства виджета в 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
🇺🇿 “Yashil” iqtisodiyotni barpo etishda energiya samaradorligini oshirish masalalari muhokama qilindi
🟧 Biznes va tadbirkorlik oliy maktabida “Respublikamizda “yashil” iqtisodiyotni barpo etishda sanoat tarmoqlarida energiya samaradorligini oshirishga qaratilgan texnologiyalarni rivojlantirish masalalari” mavzusida davra suhbati tashkil etildi.
🇺🇿O‘zb
⚡️ Discussion on Enhancing Energy Efficiency in the Development of a "Green" Economy
📊 A roundtable discussion titled "Issues in Developing Technologies to Increase Energy Efficiency in Industrial Sectors for the Advancement of a "Green" Economy in the Republic of Uzbekistan" was held at the Graduate School of Business and Entrepreneurship.
🇬🇧Eng
⚡️ Обсуждены вопросы повышения энергоэффективности при построении «зеленой» экономики
🎲 В Высшей школе бизнеса и предпринимательства состоялся круглый стол на тему: «Вопросы развития технологий, направленных на повышение энергоэффективности в промышленных отраслях при построении «зеленой» экономики в нашей республике».
🇷🇺Ru
#GraduateSchool#Green#Roundtable#Economy
🌐Web-site |
✅Telegram |
✅Facebook |
🌐Instagram
🇺🇿Rossiya xalq xo‘jaligi va davlat boshqaruvi akademiyasining Iqtisodiy va ijtimoiy fanlar fakulteti iqtisodiyot va moliya kafedrasi dotsenti - Alisen Sakinovich ishtirokida davra suhbati rejalashtirilmoqda.
👩💻Ishtirokchilar: Iqtisodiyot va moliya vazirligi, O‘zbekiston buxgalterlar va auditorlar Milliy Assotsiatsiyasi hamda auditorlik kompaniyalari.
🌎Muhokamaning asosiy mavzusi: “Xalqaro moliyaviy hisobot standartlari, soliqlar va soliqqa tortish”.
___
🇷🇺 Круглый стол c участием Алисена Сакиновича - доцента кафедры Экономики и финансов, факультета Экономических и социальных наук Российской академии народного хозяйства и государственной службы.
🧑💻Участники: Министерство экономики и финансов, Национальная Ассоциация бухгалтеров и аудиторов Узбекистана, а также аудиторские компании.
🌎Главная тема обсуждения: «Международные стандарты финансовой отчетности, налоги и налогообложение»
#GraduateSchool#Roundtable#Taxes#Finance
Web-site | Telegram | Facebook |Instagram
📢Hurmatli professor-o‘qituvchilar, tinglovchilar va mehmonlar!
🇺🇿 Sizlarni 2024-yil 28-mayda bo‘lib o‘tadigan “Respublikamizda “yashil” iqtisodiyotni barpo etishda sanoat tarmoqlarida energiya samaradorligini oshirishga qaratilgan texnologiyalarni rivojlantirish masalalari” mavzusidagi davra suhbatida ishtirok etishga taklif qilamiz.
📈 Tadbirdan maqsad respublikamiz sanoat tarmoqlarida energiya sarfini kamaytiruvchi innovatsion yechimlar izlash va bu orqali O‘zbekistonda “yashil” iqtisodiyotni rivojlantirish.
🏛 Tadbirda taqdimotlar bilan quyidagi tashkilotlar vakillari ishtirok etadilar:
⬛️ Energetika vazirligi;
⬛️ Iqtisodiyot va moliya vazirligi;
⬛️ Energetika muammolari instituti;
⬛️ “O‘zto‘qimachiliksanoat” uyushmasi;
⬛️ “O‘zsanoatqurilishmateriallari” uyushmasi
🗓Sanasi: 28 - may, 2024-yil
⏰Vaqti: 10:00
📍Tadbiro‘tkazishjoyi: Biznes va tadbirkorlik oliy maktabi (1-qavat)
🇬🇧Eng
🇷🇺Ru
#GraduateSchool#Roundtable#Discussion#Green
🌐Web-site |
✅Telegram |
✅Facebook |
🌐Instagram
[UZ] 2024-yil 20-iyun kuni Vakhidov & Partners raisligida EUROUZ Sog'liqni saqlash va hayot fanlari qo'mitasining 2024-yil 20-aprelda O‘zbekistonda bo‘lib o‘tgan hukumat manfaatdor tomonlari va Yevropa diplomatik missiyalari bilan yaqinda bo‘lib o‘tgan ochiq davra suhbatini muhokama qilish uchun ichki muvofiqlashtirish yig‘ilishini o‘tkazdi. Qo'mita ichidagi o'zgarishlarni ko'rib chiqdi va yilning qolgan qismi uchun qo'mitaning navbatdagi rejasini muvofiqlashtirdi.
-
[EN] On June 20, 2024, the #EUROUZ Healthcare and Life Sciences Committee chaired by Vakhidov & Partners held an internal coordination meeting to discuss the recent open #Roundtable with #Government Stakeholders and #European Diplomatic Missions in #Uzbekistan, which took place on April 20, 2024. Additionally, the internal meeting addressed further developments within the Committee and coordinated the next Committee plan for the remainder of the year.
-
[RU] 20 июня 2024 года комитет EUROUZ по здравоохранению и наукам о жизни под председательством Vakhidov & Partners провел внутреннее координационное совещание для обсуждения недавнего открытого круглого стола с участием государственных заинтересованных сторон и европейских дипломатических миссий в Узбекистане, который состоялся 20 апреля 2024 года. Кроме того, на внутреннем заседании были рассмотрены дальнейшие вопросы. развития внутри Комитета и координировал следующий план Комитета на оставшуюся часть года.
Follow EUROUZ: @eurouz_official
Web | Instagram | Facebook| Twitter (X) |LinkedIn
🚀 AI Event to Showcase Diverse Applications in Pop Culture
An event titled 'Super Creator Live - Creating Pop Culture with Prompts' is set to take place this Saturday. According to BlockBeats, the event is co-hosted by Beating and West Sea Voice and will feature ten demo works selected from numerous submissions. Participants include developers with deep technical expertise, influential content creators, and professionals from finance, music, and podcast industries.
The diverse backgrounds of the creators promise to offer intriguing perspectives on AI's integration into unexpected fields such as gaming, interactive design, sociology, emotional support, and metaphysics. Following the demo presentations, several prominent guests will engage in a roundtable discussion, focusing on the essence of creation and exploring how to define expression in the era of AI.
With only two days left until the event, interested individuals are encouraged to register promptly. The event will take place on April 11 at 13:30 UTC+8, with the location details available upon registration.
#AI#PopCulture#Event#Creators#Gaming#InteractiveDesign#Sociology#EmotionalSupport#Metaphysics#AIIntegration#Roundtable#Finance#Music#Podcast#Beating#WestSeaVoice#Demo#AIInCreation#Tech#ContentCreators