Установить свойства виджета в 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
🇷🇺 Rezultatet kryesore të politikës së jashtme të vitit 2024
Lexoni të plotë
Në vitin 2024, diplomacia ruse bëri përpjekje aktive për të zbatuar dispozitat e Konceptit të Politikës së Jashtme, të miratuar nga Presidenti i Federatës Ruse V.V.Putin në mars 2023.
Në kushtet kur Perëndimi kolektiv u përpoq të ruante elementet e dominimit të tij global dhe imponoi një "rend të bazuar në rregulla", Rusia ofroi një alternativë konstruktive, duke mbrojtur pandryshueshmërinë e ndjekjes së parimeve të Kartës së OKB-së në tërësinë dhe ndërlidhjen e tyre, ndër të tjera, ndaj zgjidhjes së krizës rreth Ukrainës dhe konflikteve të tjera <...>.
✅ Ka filluar zbatimi i iniciativës strategjike për krijimin e një arkitekture të sigurisë së pandashme në Euroazi, të prezantuar nga Presidenti i Federatës Ruse në qershor. <...>
✅ Potenciali ekonomik i Euroazisë së Madhe është forcuar falë promovimit të projektit për krijimin e një korridori transporti ndërkombëtar “Veri-Jug” <...>.
✅ Ka nisur zbatimi i një nisme të politikës së jashtme për bashkëpunimin ndërkombëtar në luftën kundër neokolonializmit.
✅ Janë arritur marrëveshje të rëndësishme për zhvillimin e bashkëpunimit integrues ruso-bjellorus brenda Shtetit të Unionit, kryesisht në sferën e financave, ekonomisë, industrisë dhe tregtisë.
🤝 Partneriteti gjithëpërfshirës dhe ndërveprimi strategjik me Kinën arriti një nivel të ri pas rezultateve të vizitës shtetërore të Presidentit V.V.Putin në këtë vend (maj).
🤝 Partneriteti strategjik veçanërisht i privilegjuar me Indinë mori një hov serioz falë vizitës zyrtare të kryeministrit të Indisë N.Modi në Rusi (korrik).
Ngjarje kryesore ndërkombëtare u bë samiti i Kazanit i bashkësisë BRICS, i cili, nën kryesimin rus, u zhvillua për herë të parë në formatin e zgjeruar dhe më në fund theu mitin e izolimit ndërkombëtar të Rusisë.
#Rezultatet2024
___
🇷🇺 Основные внешнеполитические итоги 2024 года
Читайте полностью
В 2024 году российская дипломатия прилагала энергичные усилия по реализации положений Концепции внешней политики, утвержденной Президентом Российской Федерации В.В.Путиным в марте 2023 года.
В условиях, когда коллективный Запад пытался сохранить рудименты своего глобального доминирования и насаждал «порядок, основанный на правилах», Россия предложила конструктивную альтернативу, выступив за непреложность следования принципам Устава ООН во всей их полноте и взаимосвязи, в том числе применительно к урегулированию кризиса вокруг Украины и других конфликтов <...>.
✅ Начата реализация представленной Президентом Российской Федерации в июне стратегической инициативы создания архитектуры неделимой безопасности в Евразии. <...>
✅ Экономический потенциал Большой Евразии укрепился благодаря продвижению проекта создания международного транспортного коридора «Север-Юг» <...>.
✅ Дан старт реализации внешнеполитической инициативы по международному сотрудничеству в борьбе с неоколониализмом.
✅ Достигнуты важные договорённости по развитию российско-белорусского интеграционного сотрудничества в рамках Союзного государства, прежде всего в финансово-экономической сфере, промышленности и торговле.
🤝 Всеобъемлющее партнёрство и стратегическое взаимодействие с КНР вышло на новый уровень по итогам государственного визита Президента В.В.Путина в Китай (май).
🤝 Особо привилегированное стратегическое партнёрство с Индией получило серьёзный импульс благодаря официальному визиту премьер-министра Индии Н.Моди в Россию (июль).
Флагманским международным событием стал Казанский саммит объединения БРИКС, которое под российским председательством впервые собралось в расширенном составе и окончательно развеяло миф о международной изоляции России.
#Итоги2024
#Rezultatet2024
🎙 Nga fjalimi i S.V.Lavrov dhe përgjigjet ndaj pyetjeve të mediave gjatë konferencës për shtyp mbi rezultatet e diplomacisë ruse në vitin 2024
#RusiKinë
• Lidhja ruso-kineze është një nga faktorët kryesorë stabilizues në jetën moderne ndërkombëtare.
• Strukturat që u krijuan mbi bazën e partneritetit ruso-kinez sigurisht i përkasin një lloji të ri shoqatash, ku nuk ka drejtues dhe ndjekës. Këto janë SCO, EAEU, e cila po harmonizon planet e saj integruese me projektin kinez "Një brez dhe një rrugë", BRICS, i cili është bërë edhe më i fortë pas samitit të Kazanit.
• Ne nuk duam të veprojmë kundër askujt, ne duam që të gjitha vendet të bëjnë biznes në bazë të respektimit të interesave të të gjithë partnerëve të tyre. Ky është qëndrimi i përbashkët i Moskës dhe Pekinit.
__
#Итоги2024
🎙 Из выступления и ответов С.В.Лаврова на вопросы СМИ в ходе пресс-конференции по итогам деятельности российской дипломатии в 2024 год:
#РоссияКитай
• Российско-китайская связка — это один из главных стабилизирующих факторов в современной международной жизни.
• Структуры, которые были созданы на основе российско-китайского партнёрства, безусловно принадлежат к объединениям нового типа, где нет ведущих и ведомых. Это и ШОС, и ЕАЭС, который гармонизирует свои интеграционные планы с китайским проектом «Пояса и пути», и БРИКС, который после Казанского саммита ещё больше окреп.
• Мы не хотим выступать против кого-то, мы хотим, чтобы все страны вели дела на основе уважения интересов всех своих партнёров. Это общая позиция Москвы и Пекина.
#Rezultatet2024
🎙 Nga fjalimi i S.V.Lavrov dhe përgjigjet ndaj pyetjeve të mediave gjatë konferencës për shtyp mbi rezultatet e diplomacisë ruse në vitin 2024
#OKB
• Reforma e Këshillit të Sigurimit të OKB-së është e nevojshme sepse jo të gjitha vendet që mbajnë përgjegjësi të veçantë në ekonominë globale, financat, politikën dhe punët ushtarake janë të përfaqësuara në [këtë organ].
• India dhe Brazili, në të gjitha aspektet, kanë merituar prej kohësh anëtarësimin e përhershëm në Këshillin e Sigurimit të OKB-së, së bashku me vendimin përkatës për anëtarësimin e përhershëm të Afrikës. Perëndimi po përpiqet ta prishë këtë proces dhe të sigurojë një pozicion të favorshëm për vete.
____
#Итоги2024
🎙 Из выступления и ответов С.В.Лаврова на вопросы СМИ в ходе пресс-конференции по итогам деятельности российской дипломатии в 2024 год:
#СБООН#ООН
• Реформа Совета Безопасности ООН нужна, потому что далеко не все страны, которые несут особую ответственность в мировой экономике, финансах, политике, военных раскладах, представлены в [этом органе].
• Индия, Бразилия по всем параметрам давно заслужили постоянную прописку в Совете Безопасности ООН, одновременно с соответствующим решением по африканскому постоянному членству. Запад пытается испортить этот процесс, обеспечить себе преимущественные позиции.
#Rezultatet2024
🎙Nga fjalimi i S.V.Lavrov dhe përgjigjet ndaj pyetjeve të mediave gjatë konferencës për shtyp mbi rezultatet e diplomacisë ruse në vitin 2024:
Abstrakte të shkurtra
#Multipolaritet#Perëndim
• Ne u detyruam të zmbrapsnim luftën e nisur kundër nesh nga “Perëndimi kolektiv” me qëllimin kryesor për të shtypur një konkurrent tjetër, të cilin Rusia u bë sërish në skenën ndërkombëtare. Qëllimi i tyre kryesor është të dobësojnë Rusinë gjeopolitikisht, duke krijuar kërcënime të drejtpërdrejta ushtarake ndaj Federatës Ruse në kufijtë dhe territoret e saj në përpjekje për të minuar potencialin tonë strategjik.
• Opozita ndaj diktaturës perëndimore është rikthyer tashmë në formën e rritjes së ekonomive të reja, qendrave financiare në Kinë, Indi, ASEAN, botën arabe, komunitetin e shteteve të Amerikës Latine dhe Karaibeve, Rusi së bashku me aleatët e saj në EAEU, CIS, CSTO, SCO, #BRICS.
• Refuzimi i konkurrencës së ndershme dhe përdorimi i metodave të padrejta, agresive të shtypjes së konkurrentëve manifestohet në politikën e sanksioneve, të cilat SHBA-ja dhe aleatët e saj e kanë bërë bazën e veprimeve të tyre në arenën ndërkombëtare, edhe ndaj Rusisë.
• Perëndimi është i dehur nga madhështia e tij, pandëshkueshmëria e tij, e drejta e vetëcaktuar për të vendosur për fatet e të gjithë popujve të botës. Një mendjemadhësi e tillë është një qëndrim i përbuzur ndaj pjesës tjetër të botës.
___
#Итоги2024
🎙 Из выступления и ответов С.В.Лаврова на вопросы СМИ в ходе пресс-конференции по итогам деятельности российской дипломатии в 2024 год:
Краткие тезисы
#Многополярность#Запад
• Мы были вынуждены отражать войну, начатую против нас «коллективным Западом» с главной целью подавить очередного конкурента, каковым Россия вновь оказалась на международной арене. Их главная цель – ослабить Россию в геополитическом плане, создавая на её границах, на её территориях прямые военные угрозы Российской Федерации в попытке подсечь наш стратегический потенциал.
• Противостояние западному диктату уже восстановилось в лице поднимающихся новых экономик, финансовых центров в Китае, Индии, АСЕАН, арабском мире, сообществе латиноамериканских и карибских государств, России вместе со своими союзниками по ЕАЭС, СНГ, ОДКБ, ШОС, #БРИКС.
• Отказ от честной конкуренции и использование недобросовестных, агрессивных методов подавления конкурентов проявляется в санкционной политике, которую США и их союзники сделали основой своих действий на международной арене, в том числе в отношении России.
• Запад одурманен своим величием, своей безнаказанностью, своим самоприсвоенным правом вершить судьбы всех народов мира. Такое самомнение — презренное отношение ко всему остальному миру.