Установить свойства виджета в 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
🟦🟦🟦🟦🟦🟦🟦
☄️📚✅ Buxoro davlat universiteti va Yaponiyaning nufuzli universitetlari o‘rtasida hamkorlik yo‘lga qo‘yildi
🇯🇵🇺🇿Buxoro davlat universiteti bilan Yaponiyaning yetakchi oliy ta’lim muassasalari — Tsukuba universiteti (University of Tsukuba, QS-2026 xalqaro reytingida 350-o‘rinda) hamda SOKENDAI (The Graduate University for Advanced Studies) universitetlari o‘rtasida istiqboldagi yo‘nalishlar bo‘yicha hamkorlik o‘rnatish yuzasidan kelishuvlarga erishildi.
🎓 Tsukuba universiteti prezidenti Dr. Nagata Kyosuke va SOKENDAI universiteti prezidenti Dr. Takashi Nagata bilan o‘tkazilgan uchrashuvlar davomida qo‘shma ilmiy tadqiqotlar olib borish, professor-o‘qituvchilar va talabalarning almashinuv dasturlarini yo‘lga qo‘yish, ilmiy stajirovkalar, xalqaro grantlar va qo‘shma loyihalar ustida ishlash kabi masalalar muhokama qilindi.
🔄 Mazkur hamkorlik Buxoro davlat universitetining xalqaro miqyosdagi ta’lim va ilmiy integratsiyasini kengaytirish, shuningdek, O‘zbekiston va Yaponiya o‘rtasidagi akademik aloqalarni yangi bosqichga olib chiqishga xizmat qiladi.
#BuxDU#Yaponiya#TsukubaUniversity#SOKENDAI#InternationalCooperation#ScienceAndInnovation
👶👧🧒👦👩🧑👨👩🦱🧑🦱👨🦱👩🦰🧑🦰
Bizni kuzatishda davom eting:
🌐Telegram🌐Facebook
🎓 Discover Science and Innovation in Russia! 🇷🇺
✅Why do thousands of students from all over the world choose Russian universities?
✅ For groundbreaking research opportunities,
✅ For world-class facilities and unique locations,
✅ And for a journey of self-realization and professional growth.
💡 Top destinations for aspiring scientists:
🏛Moscow State University (MSU)
The oldest and most prestigious university in Russia with:
- A massive research platform,
- Advanced laboratories and research centers,
- 550+ international postgraduate students currently exploring cutting-edge fields.
🏛University of Tyumen (UTMN)
A hub for innovative master's programs and graduate studies featuring:
- Modern research centers and labs,
- Unique training bases on Lake Baikal,
- An inspiring atmosphere for international students passionate about science.
🏛Bashkir State University (BSU)
A leader in scientific and innovative activities with:
- 14 research and educational centers,
- 10 dissertation councils,
- A thriving student scientific society and nine scientific journals.
🏛 St. Petersburg State University
A global research hub with:
- A science park with the latest equipment,
- Dozens of laboratories and centers,
- Graduates in demand worldwide, with 700+ foreign postgraduate students.
🏛Novosibirsk State University (NSU)
At the heart of Akademgorodok, offering:
- Integration with the Russian Academy of Science,
- 38 research centers,
- Opportunities to become an advanced scientist.
🎓 Studying in Russia isn’t just education—it’s a path to transformation.
Embrace constant self-improvement, dive into innovative projects, and shape your future as a global scientific leader!
Start your journey today! Apply now to Russian universities and take the first step towards your dream career in science and research.
👉 Register now: https://education-in-russia.com
#EducationInRussia#studyinrussia#ScienceAndInnovation#GlobalEducationJourney#FutureLeaders#Rossotrudnichestvo#Russia#RussianUniversities
МЕНДЕЛЕЕВСКИЙ ФИЛИАЛ НА МЕЖДУНАРОДНОМ ФОРУМЕ «WOMEN IN STEM – 2026»
🖥 14–17 февраля 2026 года профессорско-преподавательский состав, одарённые студенты Филиала, а также участники проекта «Менделеевская школа» приняли активное участие в международном научном форуме «Women in STEM – 2026», проходившем в г. Ташкенте в рамках научной недели, посвящённой Международному дню женщин и девочек в науке.
✈️ Форум был организован при поддержке Министерства высшего образования, науки и инноваций Республики Узбекистан, Ташкентского химико-технологического института, АО «Узкимёсаноат», Комитета по делам семьи и женщин, Чирчикского химико-индустриального технопарка, фонда «Ziyo Forum», а также ведущих международных партнёров — Integral University (Индия), South-West University “Neofit Rilski” (Болгария) и Международного союза теоретической и прикладной химии (IUPAC).
✅ Представители Менделеевского филиала выступили с научными докладами, провели интерактивные квизы, а также организовали зрелищные демонстрации химических реакций, вызвавшие большой интерес у участников форума.
🔬 Одарённые студенты и участники проекта «Менделеевская школа» продемонстрировали современные химические эксперименты, наглядно отражающие высокий уровень подготовки, научный потенциал и практическую направленность инженерного образования Филиала.
👍 Участие в форуме стало важным шагом в укреплении международного научного сотрудничества, популяризации STEM-образования и продвижении Менделеевского филиала как центра подготовки инженеров нового поколения.
🚀 Коллектив Филиала продолжит активное участие в научных и международных мероприятиях, формируя будущее науки и технологий.
________________________________________
#MendeleevTashkent; #WomenInSTEM; #STEMUzbekistan; #STEMEducation; #ChemicalEngineering; #MendeleevSchool; #EngineeringEducation; #ScienceAndInnovation; #UzbekistanScience; #МенделеевскийФилиал; #МенделеевскаяШкола
#ИнженерыБудущего; #РоссийскийУчительЗаРубежом; #Минпросвещения; #ЦМС; #РусскийЯзык
Web-site | Telegram | Instagram | Facebook