Установить свойства виджета в 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
Директор МКНЦ, проф. И.Е. Хатьков поделился опытом управления государственной клиникой
📆Международная научно-практическая конференция «Мировой стандарт качества: от идеи до воплощения Опыт лидеров» проходит сегодня в Академии наук Республики Татарстан, г. Казань.
🔹На встрече управленцы и главные врачи ведущих медицинских клиник делятся практическими рекомендациями для администраторов здравоохранения России и стран СНГ.
👨⚕ Главный онколог Москвы, директор МКНЦ им. А.С. Логинова, д.м.н., профессор Игорь Евгеньевич Хатьков на своем выступлении поделился опытом формирования высокоэффективной медицинской организации и рассказал о методах управления с точки зрения взаимоотношений с пациентами в рамках всего процесса оказания медицинской помощи
▫Сегодня МКНЦ имени А.С. Логинова – это крупное развивающееся многопрофильное учреждение Департамента здравоохранения города Москвы, научный и учебный центр, в составе которого работают специалисты экспертного уровня.
В Центре применяются самые современные технологии, существующие в мировой медицине: инновационные методы диагностики, выполняется весь спектр малоинвазивных хирургических вмешательств, в том числе и при онкологической патологии, что делает заметным деятельность Центра в мире.
- - - - -
#mknc#МКНЦЛогинова#ИгорьХатьков#экспертМКНЦ
Друзья!
В эту субботу – 26 ноября, приглашаем вас принять участие в конференции «Качество жизни после операции на поджелудочной железе». Программа рассчитана на пациентов, перенёсших различные операции по поводу рака поджелудочной железы.
На мероприятии вы узнаете:
🔸 о различных вариантах терапии;
🔸 об особенностях хирургического лечения;
🔸 про необходимость нутритивной поддержки после операции;
🔸 и многое другое…
После выступления докладчиков вы сможете задать все интересующие вас вопросы, а также принять участие в дегустации специального питания для перенесших операции на поджелудочной железе.
🗓 26 ноября 2022 года, начало в 9:00
Программа мероприятия по ссылке 🔗https://bit.ly/3flmjRu
Присоединяйтесь!
- - - - -
#МКНЦ#mknc#МКНЦЛогинова#конференцииМКНЦ#онкология
Торжественная церемония награждения Героев Труда и лауреатов Государственной премии 2022 года состоялась сегодня в День России в Большом Кремлевском дворце. Президент России Владимир Путин лично принял награжденных.
Государственную премию в области науки и технологий из рук президента получил Директор МКНЦ, главный онколог Москвы, академик РАН, проф. Игорь Хатьков за научное обоснование и внедрение в клиническую практику концепции минимально инвазивного хирургического лечения онкологических заболеваний.
Результатом работы стало прорывное достижение по научному обоснованию и внедрению в практику методов комплексного лечения пациентов с опухолевыми поражениями органов брюшной полости и забрюшинного пространства, включающее минимально инвазивные хирургические и роботические технологии.
- - - - -
#mknc#МКНЦЛогинова#ИгорьХатьков#экспертМКНЦ#гордостьМКНЦ
Второй выпуск программы «Твой доктор» на телеканале НТВ с заместителем директора #МКНЦЛогинова по онкологии, член-корреспондентом РАН, д.м.н. Людмилой Григорьевной Жуковой.
Он посвящен наследственному раку молочной железы.
- - - - -
#mknc#онкологияМКНЦ#экспертМКНЦ#breastcancer
МКНЦ им. А.С. Логинова регулярно проводит мероприятия по обмену опытом для региональных онкологических служб. В этот раз, благодаря компаниям «Новартис Фарма», «Рош-Москва» и «Рош Диагностика Рус», у нас в гостях побывали онкологи и химиотерапевты со всей России – от Калининграда до Владивостока.
Визит был посвящен обсуждению современных подходов в лечении рака молочной железы, путей маршрутизации пациентов и определению эффективной стратегии лечения. Программа включила в себя лекции, разборы интересных случаев из практики врачей Клиники женского здоровья #МКНЦ, а также посещение нового корпуса, открытие которого запланировано на этот год. И, конечно, участники смогли задать все интересующие вопросы нашим врачам.
Заместитель директора МКНЦ имени А.С. Логинова по онкологии, член-корреспондент РАН, д.м.н. Людмила Григорьевна Жукова отметила актуальность подобных мероприятий: «Возможность поделиться собственным опытом и задать вопрос для меня очень полезно – понять какие предпочтения в регионах и какие выявляются проблемы. Очень надеюсь, что наши пациенты выиграют от таких мероприятий!».
Специалисты МКНЦ постоянно участвуют в подобных мероприятиях и всегда рады поделиться опытом с коллегами!
- - - - -
#mknc#МКНЦЛогинова#экспертМКНЦ#строительствоМКНЦ#новыйкорпусМКНЦ
Во всем мире 4 февраля - день борьбы с онкозаболеваниями. В России с этим диагнозом живут более четырех миллионов человек.
Главный онколог России, академик РАН, Андрей Дмитриевич Каприн и главный онколог Москвы, академик РАН, Игорь Евгеньевич Хатьков рассказали о современных возможностях диагностики и лечения онкологических заболеваний.
Подробнее в сюжете программы «Вести» на телеканале Россия 1.
- - - - -
#АндрейКаприн#АОР#mknc#МКНЦ#ИгорьХатьков#онкологияМКНЦ#oncology#MOO