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

Резултати

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

Пребарај: #earthhour

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

@NEASingapore · Post #28 · 28.03.2020 г., 04:00

It's #EarthHour tonight! Don’t forget to turn off all your lights at 8.30pm today. And because we only have one earth, let’s ensure we use our resources wisely. Read more here: earthhour.org #ClimateActionSG

MND Singapore

@mndsingapore · Post #287 · 26.03.2022 г., 03:31

Here are some ideas for you to be a part of #EarthHour🌏✨ However you spend it, every small action can make a difference and help #ShapeOurFuture! Share this with your loved ones 💚

NEA Singapore

@NEASingapore · Post #1012 · 22.03.2025 г., 01:04

Switch off for #EarthHour at 8:30pm! But let's not stop there. Let this yearly reminder inspire us to continue making sustainable choices. Your everyday choices matter more than you might think! Small steps such as adopting energy-saving habits and recycling right can make a difference. Imagine these small acts being amplified by millions worldwide. 🌍💚 #EnergyEfficiency#ReduceReuseRecycle#RecycleRight

NEA Singapore

@NEASingapore · Post #327 · 25.03.2022 г., 09:45

Earth Hour 2022 is happening tomorrow, 26 Mar, at 8:30pm! Don’t forget to switch off your lights with the rest of the world. The iconic act highlights how #EveryActionCounts when it comes to protecting our environment. Check out how you can go beyond the hour to save our planet: www.earthhour.org/take-part/beyond-the-hour #EarthHour#EarthHour2022

БелГИЭ

@state_enterprise_belgie · Post #2541 · 29.03.2025 г., 05:00

⏰ 29 марта - #Час_Земли! 🌎 Традиционно в последнюю субботу первого месяца весны Беларусь присоединяется к международной экологической акции – #Час_Земли! 🇧🇾, в 17-й раз вместе с миллионами людей по всему миру выключим свет на один час, чтобы задуматься о будущем нашей планеты. 🌍 💡 Акция направлена на то, чтобы акцентировать внимание на вопросах климатических изменений, экономии энергии и экологической безопасности. Это не просто формальность, а уникальная возможность внести свой вклад! 💚 ⏰ Присоединяйтесь к #EarthHour: 29 марта с 20:30 до 21:30 выключите освещение и другие не первостепенные электроприборы в знак поддержки ответственного отношения к природе. 🌿 Сделаем нашу планету лучше вместе! #Беларусь#БелГИЭ#Час_Земли#Экология#СохранимПланету#БерегитеПрироду

🌊 Всемирный день воды: общие течения перемен 🌊 Сегодня, когда мы отмечаем Всемирный день воды и готовимся к Часу Земли, стоит вспомнить, что изменение климата не знает границ. Акватории, соединяющие Россию и Великобританию — от Балтийского моря до Арктики — молча свидетельствуют о нашей общей уязвимости. Знаете ли вы, что уровень воды в Мировом океане 📈 растет на 3,7 мм в год? Это угрожает как Санкт-Петербургу, так и Лондону. Таяние арктических льдов одинаково тревожит ученых всего мира. Британцы и россияне оставили богатое научное наследие в области исследования морей. От экспедиций 🚢 Джеймса Кука до работ Степана Макарова — мы вместе создавали принципы современной океанологии. В сегодняшних условиях именно забота о водных ресурсах может стать той платформой, где диалог все еще возможен. Молодые исследователи по обе стороны глобального диалога понимают: защита водных ресурсов — это не политический вопрос, а ❕необходимость для выживания человечества. В 20:30 сегодня миллионы людей по всему миру выключат свет на #EarthHour. Это символический жест, напоминающий, что перед лицом климатического кризиса мы все в одной лодке. 🔗 Узнайте больше о свежых исследованиях, связанных с возможными последствиями изменения климата в Арктике: https://t.me/ecobellona/2028 и https://www.youtube.com/watch?v=Rn-Mk3_ybto&feature=youtu.be #WorldWaterDay#ЧасЗемли#EarthHour#КлиматическиеДействия#ClimateAction