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

Резултати

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

Пребарај: #3rs

当前筛选 #3rs清除筛选
NEA Singapore

@NEASingapore · Post #373 · 26.06.2022 г., 01:27

Ever wondered what your used notebooks, tissue boxes and loose paper becomes after putting them into the blue bins? They are treated and recycled into new items such as egg trays! #3Rs#RecycleRight Not sure what can be recycled? Find out at go.gov.sg/recycleright!

NEA Singapore

@NEASingapore · Post #368 · 12.06.2022 г., 01:30

Recycling plastic can be confusing with the many plastic identification numbers. To keep things simple, just recognise and remember that these 3 groups that are ok to be put into Bloobin! Not sure what can be recycled? Find out at go.gov.sg/recycleright! #3Rs#RecycleRight

NEA Singapore

@NEASingapore · Post #335 · 14.04.2022 г., 09:31

Here’s another test for your recycling knowledge! Do you know which items can or cannot be placed into the blue recycling bins? Not sure what can be recycled? Find out at go.gov.sg/recycleright! #3Rs#RecycleRight

NEA Singapore

@NEASingapore · Post #291 · 12.12.2021 г., 03:29

It’s finally that time of year to pull out our festive decorations! Rather than buy new decorations each year, keep them to be reused each year -- they never go out of style 😊#SayYEStoWasteLess#3Rs

NEA Singapore

@NEASingapore · Post #280 · 04.11.2021 г., 02:00

#RecycleRight Tip: Flatten cardboard boxes, even smaller ones such as tissues boxes. This gives you more room in your recycling corner, and frees up space in the recycling bin! #3Rs

NEA Singapore

@NEASingapore · Post #338 · 21.04.2022 г., 09:31

#DidYouKnow not all takeout containers or disposable plastics can be recycled? If they’re greasy or dirty, bin them to avoid contaminating other recyclables. Not sure what can be recycled? Find out at go.gov.sg/recycleright! #3Rs#RecycleRight

NEA Singapore

@NEASingapore · Post #450 · 25.10.2022 г., 00:45

Dressing up as your favourite superhero this Halloween? Get creative and make a costume using everyday household items. When you’re done, recycle or reuse what you can of your outfit, so that your superhero legacy will continue to live on 🦸‍♂️ #3Rs#ReduceReuseRecycle

NEA Singapore

@NEASingapore · Post #1215 · 31.12.2025 г., 00:54

Glow-up your home with a recycling corner! Keep a bin, box or bag right beside your trash bin to make recycling effortless. ✅ Drop in only clean recyclables 🚫 Keep food scraps & oily packaging out Soon, recycling will feel like second nature! #3Rs#RecycleRight#TowardsZeroWaste#SustainableSG

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