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

Пребарај: #lifelesson

当前筛选 #lifelesson清除筛选
Oreo's Space

@OreosSpace · Post #385 · 06.01.2023 г., 12:27

Habits we need to Avoid which drain our energy... 🙅🏼‍♂️❌ × Gossiping. × Overthinking. × Over stressed. × Sleeping in late. × Having a poor diet. × Holding on to the past. × Complaining all the time. × Taking things personally. × Fueling drama in the mind. × Always checking social media. #lifeLesson ━━━━━━━━━━━━━━━ Join us @OreosSpace🥀

Hashtags

Oreo's Space

@OreosSpace · Post #356 · 12.12.2022 г., 12:30

THINGS THAT CAN CHANGE YOUR LIFE FOR THE BETTER • Stop complaining and appreciate how lucky you are everyday. • Embrace loneliness and renew yourself in the process. • Say goodbye to the people that don't bring positive energy in your life. • Set limit to the time you spend on the internet. • Pick one skill and put all your effort into developing it. • Commit to the goals you set and never look back. • Exercise everyday to boost your mood. • Learn from every mistake you make. #lifelesson @OreosSpace

Hashtags

🌿Suffering and Desire🦋 Buddha taught that there is suffering in this world, it is inevitable, and the root cause of suffering is mainly the desires we feel. We want something, always, and feel miserable when we don't get it. Stoicism teaches us to live in accordance with nature and to accept that suffering will manifest in different ways in our lives. #Tuesday#Day-2 #Biographies#Inspiration #lifelesson#Thought

BBC Learning English

@english_bbc_learning · Post #3658 · 15.07.2025 г., 18:29

🤔 Did something bad happen to you when you weren’t expecting it? You’re not going to put yourself in that situation again, are you? 😄 Learn this useful English expression that summarises this life lesson. Give this post a like, and ✍️ put your answer in the comments! Do you have a similar expression in your language?⁣ ⁣ 🤩 Click on the link in our bio to learn some modern idioms!⁣ ⁣ Images: Getty⁣ ⁣ #learnenglish#advice#idioms#esl#efl#vocabulary#englishclass#phrases#expressions#oncebitten#britishenglish#lifelesson#inspiration#slang