@exploreclassical · Post #463 · 25.12.2022 г., 18:02
倒数日历到今天就结束啦~活动期间channel的关注人数也来到了1000,非常感谢大家的支持🙏Merry Christmas and happy holidays! 🧑🎄🎄 #adventCalendar https://www.youtube.com/watch?v=hVWVAVZuTpA
Hashtags
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
Пребарај: #adventcalendar
@exploreclassical · Post #463 · 25.12.2022 г., 18:02
倒数日历到今天就结束啦~活动期间channel的关注人数也来到了1000,非常感谢大家的支持🙏Merry Christmas and happy holidays! 🧑🎄🎄 #adventCalendar https://www.youtube.com/watch?v=hVWVAVZuTpA
Hashtags
@exploreclassical · Post #462 · 25.12.2022 г., 04:12
https://m.youtube.com/watch?v=n036kBC1HEw #adventCalendar
Hashtags
@exploreclassical · Post #459 · 23.12.2022 г., 02:53
Winter Storm Elliott 即将横扫北美lol今天就来首 Winter Wind 吧 🌬️🌬️🌬️ https://www.youtube.com/watch?v=bHbgLoDG8Ko&ab_channel=MaurizioPollini-Topic #adventCalendar
Hashtags
@exploreclassical · Post #458 · 22.12.2022 г., 01:24
大家冬至快乐~分享一首巴托克的 Winter Solstice Song, 一年中最黑暗的一天即将过去~ https://www.youtube.com/watch?v=tKaEmA6soIE #adventCalendar
Hashtags
@exploreclassical · Post #457 · 21.12.2022 г., 02:58
差点忘了今天的分享了hhh今天夹带一个个人私货吧hhh我最喜欢多圣诞音乐是来自 Vince Guaraldi Trio 的为花生漫画创作的配乐~俏皮的风格,配上舒尔茨画笔下那些有趣的小朋友,以及想象力超级丰富的 snoopy,可以让人忘记所有烦恼! 今年还有幸去参观了位于加州Santa Rosa的舒尔茨博物馆,参观中还碰到了现场的爵士表演,是今年最难忘的记忆之一了! https://m.youtube.com/watch?v=VVB18xbRMI4&list=PLEpZan9S2GOFesp-gJqsdD80a7zoaflHa #adventCalendar
Hashtags
@exploreclassical · Post #455 · 18.12.2022 г., 19:15
今天看了这届世界杯的唯一一场球hhh~分享帕瓦罗蒂在一首1990年世界杯的conert上演唱的,我们熟悉的 Nessun Dorma~据说这首曲子成为1990年世界杯的一首代表曲目是因为当年BBC体育频道非常罕见的选用了这首曲子作为转播片头。据说帕瓦罗蒂小时候还曾经想过去当门将hhh~另外发现1990年世界杯的决赛是西德vs阿根廷,阿根廷惜败,今天也是终于圆了阿根廷长久以来的梦想啦! https://www.youtube.com/watch?v=V5moKfZ9Y2Q #adventCalendar
Hashtags
@exploreclassical · Post #454 · 17.12.2022 г., 22:20
今天是贝多芬的生日,分享一首他的作品吧~好像贝多芬没有太多圣诞相关的作品,查了一圈发现一篇文章里提到了这首 12 Variations on a Theme from Handel's Judas Maccabaeus, WoO 45,大约是原作的宗教背景让它成为了圣诞会演奏的曲目吧~另外旋律也挺轻快的 https://www.youtube.com/watch?v=cdmPI7M7oug ref: https://www.henle.de/blog/en/2019/12/23/christmas-with-beethoven/ #adventCalendar
Hashtags
@exploreclassical · Post #453 · 16.12.2022 г., 22:22
周五啦,今天分享一个特别的!我们这今天风雨交加,这恶劣的天气让我想到了一集冰天雪地背景的《猫和老鼠》:snowbody loves me~配乐是肖邦串烧🤣希望大家看得开心,keep warm 🧣 https://m.youtube.com/watch?v=i0cwtd5ZDe0 #adventCalendar
Hashtags
@exploreclassical · Post #452 · 16.12.2022 г., 04:13
今天发的有点晚啦,分享一首 Liszt 的 Christmas Tree Suite 里的 Slumber Song~晚安💤 https://m.youtube.com/watch?v=8XkI0xamAhU #adventCalendar
Hashtags
@exploreclassical · Post #449 · 13.12.2022 г., 02:11
在这段紧张的日子里,我们听一段幽默曲休息一下吧。我们选了一个Jazz的幽默版本,Art Tatum的即兴技术高超,让人叹为观止。请朋友们欣赏 https://www.youtube.com/watch?v=ZL-CVV616nI&ab_channel=bluesinorbit #adventCalendar
Hashtags
@exploreclassical · Post #448 · 12.12.2022 г., 03:38
今天久违的出去玩耍,居然就撞上了这个冬天的第一场雪!分享一首 Sibelius 的 Symphony No.6,Sibelius 曾说过“The Sixth Symphony always reminds me of the scent of the first snow.” ❄️ https://youtu.be/uV2Sh56TK_g #adventCalendar
Hashtags
@exploreclassical · Post #447 · 10.12.2022 г., 22:53
昨天我们听了 Fanny Mendelssohn 的季节主题套曲,今天来一首可能大家更熟悉的:柴可夫斯基的季节主题套曲~同样分享十二月~ https://www.youtube.com/watch?v=U-FGZ5InUNc&ab_channel=OlgaScheps #adventCalendar
Hashtags