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 слични објави

Пребарај: #drake

当前筛选 #drake清除筛选
无损音乐分享频道

@d_wusun · Post #5499 · 02.02.2026 г., 12:50

名称:Drake - 2018年专辑 - Scorpion (2CD) Flac 描述: A Side 01、Survival 02、Nonstop 03、Elevate 04、Emotionless 05、God's Plan 06、I'm Upset 07、Out of 10 08、Mob Ties 09、Can't Take a Joke 10、Sandra's Rose 11、Talk Up 12、Is There More B Side 01、Peak 02、Summer Games 03、Jaded 04、Nice for What 05、Finesse 06、Ratchet Happy Birthday 07、That's How You Feel 08、Blue Tint 09、In My Feelings 10、Don't Matter to Me 11、After Dark 12、Final Fantasy 13、March 14 链接:https://pan.quark.cn/s/aebfa73c69ae 📁 大小:484MB 🏷 标签:#Drake#音乐#无损音乐#猪儿虫

Chris Brown (Album Brown)

@ChrisBrownfans2020 · Post #3052 · 26.11.2023 г., 08:28

🔝🔟 ALBUMS ON WORLDWIDE APPLE MUSIC 1⃣1989 - #TaylorSwift 2⃣For All The Dogs Scary Hours Edition - #Drake 3⃣GOLDEN - #JUNGKOOK 4⃣Midnights - #TaylorSwift 5⃣reputation - Taylor Swift 6⃣11:11 - #ChrisBrown 7⃣Christmas - #MichaelBublé 8⃣GUTS - #OliviaRodrigo 9⃣The Hunger Games: The Ballad Of Songbirds & Snakes - #OliviaRodrigo, #RachelZegler & #FlatlandCavalry 🔟UTOPIA - #TravisScott