Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
#Sondaggi
#Albania🇦🇱
#Parlamentari
Sondaggio di MRB-Hellas + Euronews Albania.
Data: 24 aprile-4 maggio 2025.
Campione: 1.600 persone.
🟪 Partito Socialista d'Albania (#PSSh|S&D): 48,2% (+0,3)
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 31,9% (-1,8%)
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 7,9% (+1,2)
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 7,5% (+1,2)
🟥 Movimento Insieme (#LB|Sinistra): 2,0% (-0,4%)
Altri: 2,5%
N.B.: tra parentesi è indicata la variazione rispetto all'ultimo sondaggio del medesimo istituto (10-21 aprile).
@TuttoElezioni
#Sondaggi
#Albania🇦🇱
#Parlamentari
Sondaggio di MRB-Hellas + Euronews Albania.
Data: 10-21 aprile 2025.
Campione: 1.600 persone.
🟪 Partito Socialista d'Albania (#PSSh|S&D): 47,9% (-0,4%)
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 33,7% (-2,3%)
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 6,7% (+0,4%)
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 6,3% (+1,5%)
🟥 Movimento Insieme (#LB|Sinistra): 2,4% (-0,1%)
Altri: 3%
N.B.: tra parentesi è indicata la variazione rispetto all'ultimo sondaggio del medesimo istituto (15-25 febbraio).
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Distribuzione dei seggi.
🟪 Partito Socialista d'Albania (#PSSh|S&D): 83
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 50
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 1
🟥 Movimento Insieme (#LB|Sinistra): 1
Maggioranza: 71 (✅ PSSh)
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 5.214/5.225 (99,79%)
Buste estere scrutinate: 100.835/194.889 (51,74%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,29%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 33,87%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,84%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,23%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 3,10%
🟥 Movimento Insieme (#LB|Sinistra): 1,52%
Altri: 2,15%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 5.088/5.225 (96,82%)
Buste estere scrutinate: 55.798/194.889 (28,63%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,19%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 34,18%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,70%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,32%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 3,02%
🟥 Movimento Insieme (#LB|Sinistra): 1,45%
Altri: 2,14%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 4.919/5.225 (94,14%)
Buste estere scrutinate: 38.806/194.889 (19,91%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,20%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 34,29%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,63%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,40%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2,95%
🟥 Movimento Insieme (#LB|Sinistra): 1,41%
Altri: 2,12%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 3.799/5.225 (72,70%)
Buste estere scrutinate: 25.741/194.889 (13,21%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,51%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 34,01%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,65%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,53%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2,89%
🟥 Movimento Insieme (#LB|Sinistra): 1,36%
Altri: 2,05%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 2.871/5.225 (54,95%)
Buste estere scrutinate: 10.056/194.889 (5,16%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,76%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 33,85%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,82%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,50%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2,80%
🟥 Movimento Insieme (#LB|Sinistra): 1,33%
Altri: 1,94%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 2.241/5.225 (42,89%)
Buste estere scrutinate: 2.010/194.889 (1,03%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,61%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 34,18%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,94%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,38%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2,71%
🟥 Movimento Insieme (#LB|Sinistra): 1,30%
Altri: 1,88%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 1.624/5.225 (31,08%)
Buste estere scrutinate: 1.660/194.889 (0,85%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,80%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 34,29%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,74%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,47%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2,62%
🟥 Movimento Insieme (#LB|Sinistra): 1,25%
Altri: 1,83%
@TuttoElezioni
#Albania🇦🇱
#Parlamentari
Risultati parziali.
Sezioni interne scrutinate: 1.139/5.225 (21,80%)
Buste estere scrutinate: 1.660/194.889 (0,85%)
🟪 Partito Socialista d'Albania (#PSSh|S&D): 52,73%
🟦 Alleanza per una Grande Albania (#ASHM; include #PD|PPE, #PDIU|Destra, #PL e altri partiti): 34,32%
🟥 Partito Socialdemocratico (#PSD|Socialdemocrazia): 3,74%
🟧 Iniziativa Albania Diventa (#NSHB|Centro populista; include #NTH e #LSHB): 3,49%
🟨 Partito dell'Opportunità (#PM|Centro-destra europeista): 2,65%
🟥 Movimento Insieme (#LB|Sinistra): 1,24%
Altri: 1,83%
@TuttoElezioni