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

Резултати

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

Пребарај: #mlsa

当前筛选 #mlsa清除筛选
MDC Uzbekistan

@mdcuzbekistan · Post #903 · 03.11.2024 г., 13:31

💻 We just wrapped up an incredible event, “How to Become an MLSA” and it was a huge success! A big thank you to everyone who joined us. 🚀 Our MLSA, Dilafruz Joraboyeva, shared her inspiring journey and valuable insights on becoming a successful Microsoft Ambassador. We were also honored to have Mukhammadkarim Tukhtaboyev, lead of the Microsoft Developers Community Uzbekistan, share important information about our vibrant community and opportunities for growth.⚡ Check out the highlights in our amazing video recap! Together, we’re building a stronger tech community. Stay tuned for more events! 🙃 #MLSA#StudentAmbassador#Event @mdcuzbekistan

MDC Uzbekistan

@mdcuzbekistan · Post #902 · 29.10.2024 г., 05:00

💻 Join Us for "Way to Become an MLSA"! Are you interested in becoming a Microsoft Learn Student Ambassador? Curious about how to kickstart your journey in tech? Join us for an inspiring event featuring Uzbekistan’s youngest and first female Microsoft Student Ambassador. She will share her unique experiences and insights into the MLSA program.⚡ 📍Date & Time: November 2, 2:00 pm ⏰Location: C-Space, Yunusabad Branch This is your opportunity to ask questions, network with peers, and learn how you can become a part of this exciting community. Don’t miss out—mark your calendars!🙃 Register here! Spots are limited. #Microsoft#MLSA#StudentAmbassadors#Leadership#MicrosoftDevelopersUzbekistan @mdcuzbekistan

MDC Uzbekistan

@mdcuzbekistan · Post #900 · 22.10.2024 г., 10:32

Our Core Team Member, Dilafruz Joraboyeva, Achieved Microsoft Learn Student Ambassador Status! We are thrilled to share that our very own core team member, Dilafruz Joraboyeva, has achieved a remarkable milestone by becoming the first and youngest female Microsoft Learn Student Ambassador (MLSA) in Uzbekistan. Dilafruz, who has long been an active and dedicated part of our community, now stands as the only MLSA in the country. In her new role, Dilafruz will be leading the MLSA program across universities in Uzbekistan, bringing Microsoft technologies and opportunities closer to students. Her efforts will help build a vibrant community of learners and innovators, inspiring others to take on leadership roles in tech. Keep an eye on our official platforms for upcoming events related to the MLSA program, where you can discover how to join this exciting initiative and make an impact at your university. #Microsoft#MLSA#StudentAmbassadors#UzbekistanTech#MicrosoftDevelopersUzbekistan#Leadership#Innovation @mdcuzbekistan