Установить свойства виджета в 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
🎓ETHIOPIAN STUDENTS IN RUSSIA: A CROSS-CONTINENTAL EDUCATIONAL JOURNEY
ኢትዮጵያውያን ተማሪዎች በሩሲያ፡ የትምህርት ጉዞ
💡Why thousands choose Russian universities:
Quality education in medicine, engineering, and economics that builds Ethiopia's future workforce.
🏛️TOP UNIVERSITIES | ዋና ዩኒቨርሲቲዎች:
• Moscow State University (МГУ) - Medicine: 350,000-450,000 RUB/year
• RUDN University - International programs: 280,000-380,000 RUB
• Saint Petersburg State - Engineering: 320,000-420,000 RUB
• Kazan Federal University - Economics: 250,000-350,000 RUB
❄️WINTER SURVIVAL GUIDE | የክረምት መጸብ:
🧥 "Первые три месяца я носил 5 курток одновременно!" - Ahmed, 2nd year
🌡️ From +40°C Ethiopia → -35°C Russia shock
🏠 "Общага спасла мне жизнь" - centralized heating discovery
🍲CULINARY ADVENTURES | የምግብ ጉዞ:
😋 "Что это за красный суп? Похож на Ethiopian stew!" - First borscht experience
🥞 Injera + Russian blini = unexpected combination success
☕ "Где настоящий Ethiopian coffee?!" - desperate search stories
💰FINANCIAL REALITY | የገንዘብ እውነታ:
• Monthly living costs: 15,000-25,000 RUB (~4,000-7,000 ETB)
• "Стипендия 2,000 рублей хватает на хлеб и чай" - budget student life
• Part-time work opportunities in translation/tutoring
🎯PRO TIPS | ጠቃሚ ምክሮች:
📚 Russian language prep is CRUCIAL - start 6 months early
🏥 Medical insurance mandatory: ~12,000 RUB/year
📱 Download "Тройка" app for Moscow transport
🏠 "Ищите общагу рядом с метро" - location matters!
✨SUCCESS STORIES:
"После 6 лет в России, теперь работаю врачом в Addis Ababa. Спасибо, Россия!" - Dr. Meron, graduate
Expert-reviewed content | Verified by Ethiopian student community in Russia
#EthiopianStudents#RussianEducation#StudyAbroad#ኢትዮጵያ#EducationJourney🇪🇹🇷🇺
🎓 ETHIOPIAN EDUCATION: Universities, Careers & Global Dreams
ትምህርቶች በኢትዮጵያ
💡 Discover Ethiopia's education landscape: from ancient learning centers to modern universities, where young Ethiopians dream of studying abroad.
🏛️ TOP UNIVERSITIES IN ETHIOPIA | ታዋቂ ዩኒቨርሲቲዎች በኢትዮጵያ
• Addis Ababa University (1950) - The flagship, medicine & engineering excellence
• Jimma University - Medical powerhouse, largest health sciences faculty
• Mekelle University - Engineering & technology focus, northern Ethiopia
• Bahir Dar University - Agriculture & water resources specialization
• Hawassa University - Business & agricultural sciences hub near beautiful Lake Hawassa
📍 HAWASSA UNIVERSITY SPOTLIGHT | ሀዋሳ ዩኒቨርሲቲ
• Located in stunning Hawassa city with lakeside campus views
• Strong business school - produces entrepreneurs for Ethiopia's growing economy
• Agricultural innovation hub with international research partnerships
• Why business matters: Ethiopia needs skilled managers and finance experts for economic transformation from agriculture to industrialization
🔥 MOST DEMANDED PROFESSIONS | ኢትዮጵያ ውስጥ የሚፈለጉ ሙያዎች
• Medicine & Health Sciences - doctor shortage in rural areas (critical need!)
• Engineering (Civil, Electrical, Software) - infrastructure boom demands
• Agriculture & Food Science - 80% population depends on farming
• IT & Computer Science - digital transformation wave
• Business & Economics - growing private sector opportunities
🔬 WHAT IS STEM? | ሳይንስ፣ ቴክኖሎጂ፣ ኢንጂነሪንግ እና ሒሳብ
• Science, Technology, Engineering, Mathematics - the future job engines
• Government priority: 70% STEM vs 30% humanities in universities
• Critical for Ethiopia's Vision 2030 development goals
• Creates jobs in manufacturing, tech, healthcare, and infrastructure sectors
🌍 ETHIOPIANS ABROAD | የውጭ ሀገር የትምህርት እድል
• Top destinations: USA, Germany, UK, Russia, China, India
• Popular fields: Medicine (Russia/Ukraine), Engineering (Germany), IT (USA)
• Scholarship programs: Fulbright, DAAD, Chinese Government, Indian ICCR
• Brain drain vs. knowledge transfer - complex challenge
💰 EDUCATION COSTS & ACCESS | የ ትምህርት ወጪና ተደራሽነት
• Public universities: ~5,000-8,000 ETB/year (affordable!)
• Private institutions: 70,000-150,000 ETB/year
• English medium instruction from Grade 9+
• Rural-urban education gap - major inequality issue
🚀 FUTURE TRENDS | የወደፊት አዝማሚያዎች
• STEM focus - government priority for development
• Online learning expansion post-COVID
• Technical & Vocational Education (TVET) growth
• International partnerships increasing
💰 PRO TIPS:
Ethiopian Students Union associations exist in major global cities. Many Ethiopian graduates abroad send remittances home - $5+ billion annually. The government offers incentives for diaspora professionals to return and contribute to development. Entrepreneurship education is crucial for addressing youth unemployment.
✨ Expert-reviewed content | Verified by local Ethiopian education specialist
#Ethiopia#ኢትዮጵያ#EthiopianEducation#StudyAbroad#HigherEducation#EthiopianStudents