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

Резултати

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

Пребарај: #africapower

当前筛选 #africapower清除筛选

⚡ ETHIOPIA: AFRICA'S ENERGY POWERHOUSE ኢትዮጵያ፡ የአፍሪካ የኃይል ማዕከል Not just surviving - POWERING the future! 🌍💪 ━━━━━━━━━━━━━━━━ ⚡ GRAND ETHIOPIAN RENAISSANCE DAM (GERD) ታላቁ የኢትዮጵያ ህዳሴ ግድብ 🏗️AFRICA'S LARGEST DAM: • 74 BILLION m³ capacity • 5,150 MW power • 175m high (57 floors!) • $5 billion - 100% Ethiopian-funded! 🇪🇹 • Status: OPERATIONAL ⚡ "የኢትዮጵያ ህዳሴ በኢትዮጵያውያን" (Ethiopian Renaissance by Ethiopians) ━━━━━━━━━━━━━━━━ 💡 WHAT IT MEANS ✅ Powers all Ethiopia + exports ✅ Sudan: flood control + steady flow ✅ Egypt: regulated water supply ✅ 100% renewable - ZERO emissions ✅ Lights millions of homes across East Africa "One dam lighting half of Africa"⚡🌍 ━━━━━━━━━━━━━━━ 🌱 100% GREEN ENERGY NATION Ethiopia's mix: • Hydropower: 95%+ • Wind: Growing fast • Solar: Huge potential • Coal & gas: ZERO ✅ World's cleanest energy grid!🌿 ━━━━━━━━━━━━━━━ 🔌 ENERGY EXPORT - "AFRICA'S BATTERY" Currently powering: • 🇸🇩 Sudan: 100+ MW • 🇩🇯 Djibouti: 60+ MW • 🇰🇪 Kenya: Ready! Future: South Sudan, Somalia, Eritrea, Egypt 💰 Billions in export income + regional peace "የኢትዮጵያ ኃይል የአፍሪካን ያበራል" (Ethiopian power lights Africa) ━━━━━━━━━━━━━━━ 👷 OPPORTUNITIES FOR YOUTH ⚡CAREERS: • የኤሌክትሪክ ምህንዲሶች (Engineers) • Dam operators • Renewable specialists • Grid managers 🎓 Training at Ethiopian Electric Power, universities, GERD site 💼 Thousands of jobs, high salaries, build the future! ━━━━━━━━━━━━━━━ 💚💛❤️ FUNDED BY ETHIOPIANS Every citizen contributed: • Salary donations • Diaspora bonds • Personal savings More than infrastructure - это символ единства и гордости! "ህዳሴ - የኢትዮጵያውያን ኩራት" (Renaissance - Ethiopian Pride) ━━━━━━━━━━━━━━━ 🌍 GLOBAL IMPACT Ethiopia proves: ✅ Renewable energy works at scale ✅ Africa can self-fund development ✅ Green growth possible ✅ Cooperation beats conflict The world watches - Ethiopia delivers!🌟 ━━━━━━━━━━━━━━━ ⚡ MORE COMING 🚀 Next projects: • Koysha Dam (2,160 MW) • Wind & solar expansion • Geothermal (Rift Valley) Ethiopia's energy future = UNLIMITED!💡 ━━━━━━━━━━━━━━━ 💡 MIND-BLOWING FACTS: 🤯 Reservoir takes 3 years to fill 🤯 Could power 300+ million people 🤯 12,000+ workers built it 🤯 10+ million m³ concrete 🤯 Already generating power! ━━━━━━━━━━━━━━━ ⚡ FROM WATER TO POWER 🌊 Part 1: Water = Life source ⚡ Part 2: Power = Future engine Ethiopian Renaissance by Ethiopians, for Africa!🇪🇹💪 The future is POWERED BY ETHIOPIA! 💡🌟 ━━━━━━━━━━━━━━━ 🌍 ETHIOPIA | ЭФИОПИЯ | ኢትዮጵያ 📱@ethiopia telegram #GERD#EthiopiaEnergy#GreenEnergy#AfricaPower#EthiopianPride#RenewableEnergy#PoweringAfrica