Установить свойства виджета в 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
✨Наша цифровая лаборатория получила новые сертификаты!
С радостью сообщаем, что в мае наша лаборатория прошла проверку и получила обновленные сертификаты качества (система сертификации Промтехстандарт).
Что это значит для вас:
• Уверенность в качестве исследований: вы можете быть уверены, что все исследования в нашей лаборатории проводятся в соответствии с международными стандартами качества
• Максимальная точность диагностики: мы используем передовые технологии и интегрированные IT-решения, чтобы обеспечить вам точные и надежные результаты исследований
• Профессиональный подход: наши специалисты – высококвалифицированные врачи с большим опытом работы в области патоморфологии
• Индивидуальный подход: мы готовы предоставить вам всю необходимую информацию об исследованиях и гибко подходить к решению ваших задач
С уважением,
UNIM – ваш надежный партнер в мире цифровой патоморфологии
#юним#digitalpathology#certification
🟦🟦🟦🟦🟦🟦
Professional IT sertifikatga o’qiganlarning 40% dan ortig’i IT sohasida ishtopib, 500$ va undan yuqori daromad topishmoqda.
📈 Professional darajadagi xalqaro IT sertifikatlarga o'qib kompensatsiya olgan yoshlar soni 2023-yilda 386 nafarni tashkil etgan bo'lsa, 2024-yilda 938 tani tashkil etdi (2,4 barobarga ko'paygan), qoplab berilgan mablag' miqdori 3,5 mlrd so'mni tashkil etib, 6,6 barobarga oshgan.
📼 Hozirgi kunda, aksariyat IT kompaniyalar suhbatga taklif qilishganida nomzodlarda qanday Professional IT sertifikati borligi, ilg’or IT texnologiyalar hamda chet tillarini bilishi holati muhim ahamiyat kasb etadi.
🚪 Siz ham IT sohasida yaxshi daromad topmoqchi bo’lsangiz – xalqaro sertifikatlarga o’qing(ro'yxat) va Uzbekcoders.uz portalida BEPUL ta’lim resurslaridan foydalaning.
#Uzbekistan#IT_Hub#Certification#Talents#Coursera#Uzbekcoders#Statist
Друзья,
Рады сообщить, что лаборатория UNIM успешно прошла независимую экспертизу качества иммуногистохимических исследований, проведенную Центром контроля качества РМАНПО.
Что это значит для вас?
🔘Высочайший уровень качества: Мы подтвердили, что наша лаборатория полностью соответствует мировым стандартам "идеального окрашивания". Это значит, что вы можете быть уверены в точности и надежности результатов наших исследований.
🔘Гарантия правильного диагноза: Даже при обнаружении незначительных отклонений от референсного показателя, наши специалисты проводят дополнительную верификацию, чтобы исключить нежелательных погрешностей в постановке диагноза.
🔘Ваш надежный партнер: Мы стремимся предоставлять вам самую точную и достоверную информацию, необходимую для принятия взвешенных клинических решений.
С уважением,
UNIM – ваш надежный партнер в мире цифровой патоморфологии.
#UNIM#цифроваяпатология#иммуногистохимия#качество#надежность#онкология#медицина#юним#digitalpathology#certification
Надежность и достоверность всегда являются главным приоритетом при поиске поставщиков электроники.⚡️
Платформа #HKTDCSourcing включает функцию сертификации продукции, чтобы помочь вам в поиске надежных и заслуживающих доверия поставщиков, обеспечить высокое качество электронной продукции и ее соответствие стандартам безопасности.🔍
Узнайте больше: https://sourcing.hktdc.com/en
📧 [email protected]
#HKTDC#HKTDCsourcing#sourcing#productcertification#buyers#suppliers#quality#safety#certification#electronics
📚Κρατική εξέταση πιστοποίησης στη Ρωσική ως Ξένη Γλώσσα (RKI) στην Αθήνα με τη συμμετοχή εμπειρογνωμόνων του Κρατικού Πανεπιστημίου Λομονόσοφ Μόσχας🇷🇺🎓
Στις 28–29 Ιουνίου στο Ρωσικό σπίτι στην Αθήνα (ΡΠΕΚ) πραγματοποιήθηκε η επίσημη κρατική εξέταση πιστοποίησης στη ρωσική ως ξένη γλώσσα (RΚΙ) με τη συμμετοχή εξεταστών του Κρατικού Πανεπιστημίου Μόσχας «Μ.Β. Λομονόσοφ» — ενός από τα κορυφαία επιστημονικά κέντρα στον τομέα της διδασκαλίας της ρωσικής ως ξένης (RΚΙ).
🔹 Οι εξετάσεις διεξήχθησαν για τα επίπεδα από A1 έως C2.
🔹 Συμμετείχαν μαθητές, φοιτητές, καθηγητές, μηχανικοί, στρατιωτικοί και εκπρόσωποι άλλων επαγγελμάτων.
🔹 Τα πιστοποιητικά αναγνωρίζονται στη Ρωσία, την Ελλάδα, τις χώρες της ΕΕ, τον Καναδά και τις ΗΠΑ.
Η εξέταση αυτή είναι ένα σημαντικό βήμα προς τη διεθνή αναγνώριση του επιπέδου γνώσης της ρωσικής γλώσσας, απαραίτητη για σπουδές, εργασία και υπηκοότητα.
🖼 Στις ημέρες των εξετάσεων στο ΡΚΠ παρουσιάστηκαν δύο εκθέσεις:
— «Η ζωή και η έμπνευση του Πούσκιν» από το Πανρωσικό Μουσείο Α.Σ. Πούσκιν
— «Η ρωσική αλφάβητος μέσα από τα σχέδια της Μαρίνα Χανκόβα» — ένα μοναδικό καλλιτεχνικό έργο στο ύφος του Ιβάν Μπιλίμπιν
📍 Στις 5 Ιουλίου στη Θεσσαλονίκη θα πραγματοποιηθεί το τελικό στάδιο της πιστοποίησης στη Ρωσική ως Ξένη Γλώσσα. Μείνετε συντονισμένοι και μην χάσετε την ευκαιρία!
👉 Διαβάστε περισσότερα στον σύνδεσμο: https://clck.ru/3Mstpg
📚Государственное тестирование по РКИ в Афинах с участием экспертов МГУ 🇷🇺🎓
28–29 июня в Русском доме в Афинах (РЦНК) прошло официальное государственное тестирование по русскому языку как иностранному (РКИ) с участием экзаменаторов МГУ имени М.В. Ломоносова — ведущего научного центра в области преподавания РКИ.
🔹 Экзамены проходили по уровням от А1 до С2.
🔹 Участники — школьники, студенты, преподаватели, инженеры, военные и представители других профессий.
🔹 Сертификаты признаются в России, Греции, странах ЕС, Канаде и США.
Этот экзамен — серьёзный шаг на пути к международному признанию уровня владения русским языком, необходимый для учёбы, работы и гражданства.
🖼 В дни тестирования в РЦНК прошли две выставки:
— «Жизнь и вдохновение Пушкина» от Всероссийского музея А.С. Пушкина
— «Русская азбука в рисунках Марины Ханковой» — уникальный художественный проект в стиле Ивана Билибина
📍 А уже 5 июля в Салониках состоится заключительный этап сертификационной аттестации по РКИ. Следите за новостями и не упустите шанс!
👉 Читайте подробнее по ссылке: https://clck.ru/3MstGS
@rossotrudnichestvo
#РусскийДомАфины#РКИ#TRKI#RussianLanguage#MSU#ΕξετάσειςΡωσικών#РЦНК#RussianAsForeignLanguage#Certification#CEFR#RFL#ИзучаемРусский#Pushkin#MarinaKhankova#Αθήνα#Thessaloniki#MoscowUniversity#РусскийЯзыкЗаРубежом