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

Резултати

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

Пребарај: #takeresponsibility

当前筛选 #takeresponsibility清除筛选

Fake news can cause unnecessary anxiety and panic. PAUSE, and verify before you share! Citizens are urged to take the recommended actions required to protect their families, friends, and selves. 🔗 https://ncdc.gov.ng/news/493/official-statement-on-the-new-covid-19-subvariants #TakeResponsibility

Parents & caregivers should ensure that their children are fully vaccinated against diphtheria with three (3) doses of the pentavalent vaccine as recommended in the childhood immunisation schedule. #TakeResponsibility to protect yourself & loved ones 🔗 https://ncdc.gov.ng/news/435/diphtheria-public-health-advisory-amidst-outbreak-in-nigeria

The elderly, immunocompromised and those with existing health concerns are advised to: ➡️Wear face masks in outdoor spaces ➡️Wash hands regularly with clean water and soap ➡️Use hand sanitisers ➡️Avoid large gatherings #TakeResponsibility to stay safe and healthy.

To protect yourself and loved ones from Ebola virus disease, #TakeResponsibility: ✅Wash your hands using soap and running water ⛔Avoid direct handling of dead bats, monkeys etc ⛔Avoid physical contact with anyone with undiagnosed symptoms 📜Advisory https://ncdc.gov.ng/news/423/public-health-advisory-following-declaration-of-ebola-virus-disease-outbreak-in-uganda

ДжоПи: Как найти вопрос, на который не знаешь ответа? Это как найти шапку, которую уже надел, Но забыл об этом. Как пристроить ответ, на который не задан вопрос? (У меня их столько за жизнь заготовлено.) Как снежков налепить в одиночку, а не в кого бросить. Вот прибрался в комнате, и день прошёл. А план не изменился. #bitnev#стихи#takeresponsibility

123•••10•••1213
ПретходнаСтраница 1 од 13Следна