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

Пребарај: #iamready

当前筛选 #iamready清除筛选

የመራጮች ምዝገባ ሊጠናቀቅ የቀሩት 5 ቀናት ብቻ ናቸው ************** እስከ መያዝያ 14 ድረስ የተራዘመው የመራጮች ምዝገባ ሊጠናቀቅ የቀሩት 5 ቀናት ብቻ ናቸው። ያስታውሱ! የምርጫ ካርድዎ የዜግነት መብትዎን የሚጠቀሙበት መንገድ ነው። ዛሬ የምንወስደው የምርጫ ካርድ ለምንሻው ለውጥ እና ለምንመኘው እድገት ብቸኛው ሕጋዊ መሳሪያችን ነው። የሚወስዱት ካርድ ድምፅ የማግኘት መብት ብቻም ሳይሆን የአገርዎ ባለቤት መሆንዎን የሚያረጋግጡበት ታሪካዊ አጋጣሚም ጭምር ነው። የእርስዎ ካርድ ለሀገር ሰላም ለዲሞክራሲ ግንባታና ለወደፊት ተስፋችን የሚቀመጥ ጡብ ነው። አሁኑኑ ይመዝገቡ ነገን በካርድዎ ይቅረጹ! ሊጠናቀቅ የቀናት እድሜ ብቻ በቀረው የመራጮች ምዝገባ አሁኑኑ በሚቀርብዎ የምርጫ ጣቢያ በአካል በመገኘት ወይም የምርጫዬ መተግበሪያን በመጠቀም በዲጂታል አማራጭ በቀላሉ መመዝገብ ይችላሉ። ለመራጭነት፣ ምርጫዬ የሞባይል መተግበሪያን ● ከአፕ-ስቶር:- https://url-shortener.me/IHPC ወይም ● ከፕለይ-ስቶር https://url-shortener.me/IHPF ላይ በማውረድ፣ አሊያም ●በድረ-ገጽ አማራጭ https://url-shortener.me/IHPH በቀጥታ ራስዎ ይመዝግቡ! Ethiopian Broadcasting Corporation #EBC#election2026#Ethiopia#IAmReady

እኛ ተመዝግበናል፤ እርስዎስ ለግንቦት 24ቱ ጠቅላላ ምርጫ ዝግጁ ነዎት? ******************** ምርጫ እርስዎ የሀገሪቱ የሥልጣን ምንጭ መሆንዎን በተግባር የሚያሳዩበት እና በነፃነት የመምረጥ መብትዎን በመጠቀም ሰብዓዊ ክብርዎንና ነፃነትዎን የሚያረጋግጡበት ትልቅ መድረክ ነው። አንድ ዜጋ በሰጠው ድምፅ የሀገሪቱን ዕጣ ፈንታ የመወሰን አቅም ይኖረዋል። እንደ ኢትዮጵያ በርካታ ብሔር ብሔረሰቦችና ፍላጎቶች ባሉባት ሀገር፣ ምርጫ ሁሉም ማኅበረሰቦች የየራሳቸው ድምፅና ተወካይ እንዲኖራቸው በማድረግ የጋራ ባለቤትነትን ይፈጥራል። ዴሞክራሲያዊ ምርጫ ባለበት ሥርዓት የግለሰብና የቡድን ነፃነት እንዲሁም ሐሳብን በነፃነት የመግለጽ መብቶች ይከበራሉ። ስለዚህ፣ የሀገርዎን ዕጣ ፈንታ ለመወሰን፣ የልማት አጀንዳዎችን ለማሳካት እና ለቀጣዩ ትውልድ ሰላማዊ ቅርስ ለማስተላለፍ ይህን ታሪካዊ ኃላፊነት ለመወጣት አሁኑኑ ተመዝግበው የምርጫ ካርድዎን ይውሰዱ! ሊጠናቀቅ የቀናት እድሜ ብቻ በቀረው የመራጮች ምዝገባ አሁኑኑ በሚቀርብዎ የምርጫ ጣቢያ በአካል በመገኘት ወይም የምርጫዬ መተግበሪያን በመጠቀም በዲጂታል አማራጭ በቀላሉ መመዝገብ ይችላሉ። ለመራጭነት፣ ምርጫዬ የሞባይል መተግበሪያን ● ከአፕ-ስቶር:- https://url-shortener.me/IHPC ወይም ● ከፕለይ-ስቶር https://url-shortener.me/IHPF ላይ በማውረድ፣ አሊያም ●በድረ-ገጽ አማራጭ https://url-shortener.me/IHPH በቀጥታ ራስዎ ይመዝግቡ! Ethiopian Broadcasting Corporation #EBC#election2026#Ethiopia#IAmReady