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

Резултати

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

Пребарај: #byo

当前筛选 #byo清除筛选
NEA Singapore

@NEASingapore · Post #595 · 23.07.2023 г., 02:00

Can’t fit all your purchases into one reusable bag? Pack a few more, just in case! You’ll never know when you need to pick up a few things while you’re out 😊 #SayYestoWasteLess#BYO

NEA Singapore

@NEASingapore · Post #503 · 11.02.2023 г., 02:01

Reusable bags can be easily thrown into the washing machine or spot cleaned. While they do require more care, they can be reused many more times than their plastic counterparts making them better for the environment! #SayYestoWasteLess#BYO

NEA Singapore

@NEASingapore · Post #284 · 23.11.2021 г., 03:30

Instead of dining out, dabao some delicious hawker fare for elderly family members or neighbours so that they can stay home and stay safe. Remember to bring your along reusable containers to reduce single-use disposables. #BYO#SayYEStoWasteLess

NEA Singapore

@NEASingapore · Post #192 · 21.05.2021 г., 06:00

It’s time to put our reusables to its best use! Don’t forget to leave the house with reusable bottles and containers when tabao-ing your morning coffee, lunch or dinner from your favourite food stalls. #SayYEStoWasteLess#BYO

NEA Singapore

@NEASingapore · Post #696 · 31.10.2023 г., 01:01

This Halloween, make your carbon footprint less scary! 🍿 Having a spooky movie night? Bring along reusable popcorn containers and cups. 👻 Hitting a few haunted houses? Don't forget to keep hydrated with a reusable bottle. 🍭 And if you’re thinking of hitting the sweet shops, keep a reusable bag handy. #SustainableSG#BYO#BYOB

NEA Singapore

@NEASingapore · Post #669 · 13.10.2023 г., 01:02

Bring your reusable bag when you go shopping! Every action counts when it comes to saving planet Earth, and a little goes a long way when it comes to savings 💰 Show the Earth and your wallet some love! #SayYEStoWasteLess#BYO#BYOB

NEA Singapore

@NEASingapore · Post #648 · 23.09.2023 г., 01:01

Lock screen reminders are the new sticky notes. So set a trendy reminder to bring your own reusable bag before heading out! Let’s save the planet, one bag at a time 🛍#BYO#BYOB#SayYEStoWasteLess

12
ПретходнаСтраница 1 од 2Следна