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

Резултати

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

Пребарај: #overthinking

当前筛选 #overthinking清除筛选
Javohir Ahmadjonov

@javohir_akhmadjonov · Post #1908 · 12.10.2024 г., 10:00

Overthinking - xaddan ortiq koʻp oʻylashlik Ko‘p o‘ylash foyda keltiradi, lekin chegaradan o‘tib ketgan paytda bizni sekinlashtiradi. Shubha va qo‘rquv bilan yashashning o‘rniga, ba’zan oddiygina qaror qabul qilish va harakatga tushish kerak. Hayotda hamma narsani oldindan bilib bo‘lmaydi. Birinchi qadamni qo‘ying, yo‘l davomida to‘g‘ri yo‘lni, albatta topasiz! #Overthinking#HarakatQil#Ishon Kanalga ulanish: ➡️@javohir_akhmadjonov

#时间管理#自我成长#专注力#行动力#长期主义#焦虑#心理健康#内耗#心流#情绪调节#思考方式#社交媒体#信息过载#自我接纳#宇宙乘客#播客推荐 #TimeManagement#SelfImprovement#Focus#ActionTaking#LongTermThinking#Anxiety#MentalWellness#Overthinking#FlowState#EmotionalRegulation#Mindset#SocialMedia#InformationOverload#SelfAcceptance#UniversalResidents#PodcastRecommendation 播客内容关键点总结 1. 专注力是核心竞争力 现代人注意力严重受损,难以深入思考或持续学习 心流状态(完全沉浸于任务)是高效能的关键 建议:减少新闻/短视频等被动信息输入,每天专注阅读5页书即可超越大多数人 2. 时间复利的威力 时间是不可再生资源,微小优势会随时间指数级放大 案例:跑步从3km→5km→10km的累积效应 坚持者最终会甩开中途放弃的人("熬死竞争对手"效应) 3. 行动方法论 破除拖延:恐惧源于对结果的过度担忧,需接受"不完美是常态" 目标拆解:像项目管理一样将年目标分解为月/周/日可执行单元 验收机制:定期检查进度并灵活调整计划 聚焦困难部分:避免只做简单事务(如学英语只背单词不练听说) 4. 价值观构建 区分"伪需求"与真实目标(追问"要钱究竟是为了什么?") 接受资源有限性:不能面面俱到,必须做优先级取舍 建立"成长型思维":失败是迭代过程,最终收获内心平静比物质更重要 5. 健康基础 辅酶Q10等补剂作为熬夜补救方案(但强调睡眠优先) 运动+营养+睡眠的综合健康管理 体力是长期主义的生理基础(参考郭德纲"活得长就是竞争力"理论) 6. 商业启示 个人IP打造:持续输出价值比追求短期流量更重要 职场建议:把公司事务当自己的事来积累能力 警惕"速成陷阱":所有真实技能都需要时间沉淀 核心公式:[成长 = 专注力 \times 有效行动 \times 时间] 反脆弱策略:在不确定环境中保持持续微迭代,让时间成为盟友而非敌人 https://open.spotify.com/episode/4kVYRpZenwcG18GhaTova4 如果你也受困于浮躁、低效或自我怀疑,那就听听吧(突然发现这个的广告部分相当的长呢