Регулярно приходится писать и ревьюить код, где используется 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
Noch so ein kleines Highlight vom größten Lügner im Land...
#Merz
TEILEN
Folgt mir auf Telegram
↕️↕️↕️
https://t.me/Kampf_fuer_unsere_Zukunft
Chat-Kanal
⬇️⬇️⬇️
https://t.me/IavYc2SRFdY1OGY6
Friedrich #Merz ha dichiarato che "l'eventuale introduzione di nuovi dazi da parte del presidente Donald Trump indebolirà le relazioni tra Unione europea e Stati Uniti" e che l'Ue risponderà "con prudenza".
@UltimoraPolitics24
Friedrich #Merz ha dichiarato che la Germania ha commesso "un grave errore strategico" con "l'abbandono dell'energia nucleare" e ha aggiunto: "Ora stiamo attraversando la transizione energetica più costosa in tutto il mondo".
@UltimoraPolitics24
🇩🇪🇻🇪 Friedrich #Merz: "Nicolás Maduro ha condotto il suo Paese alla rovina. Le elezioni più recenti sono state truccate. Come molti altri Paesi, pertanto, non abbiamo riconosciuto la sua presidenza. Maduro ha svolto un ruolo problematico nella regione.
La valutazione giuridica dell’intervento degli Stati Uniti è complessa e richiede un’attenta considerazione. Il diritto internazionale rimane il quadro di riferimento. In questa fase è necessario evitare l’instabilità politica in Venezuela. L’obiettivo è una transizione ordinata verso un governo eletto."
@UltimoraPolitics24
💬#Merz appelle l’Allemagne à « se ressaisir »
Le chancelier allemand Friedrich Merz a appelé les Allemands à se ressaisir lors d’un discours à Düsseldorf. Il a estimé que le pays devait enfin s’attaquer à ses problèmes structurels et aux réformes longtemps repoussées.
Cette intervention intervient alors qu’un récent sondage international le présente comme un des dirigeants démocratiquement élus les plus impopulaires au monde, avec seulement 19 % d’opinions favorables en Allemagne.
RT en français • Osez questionner !
#iran, il Cancelliere #Merz: "Un regime che può mantenersi al potere solo con la forza bruta e il terrore contro la propria popolazione ha i giorni contati [...] potrebbero essere settimane, ma questo regime non ha alcuna legittimità per governare il Paese e se ci sono state decine di migliaia di vittime nelle ultime manifestazioni contro il regime, è evidente che il regime dei mullah può mantenersi al potere solo con il terrore puro" (ANSA)
@UltimoraPolitics24
💬Donald #Trump a déclaré que Friedrich #Merz devrait consacrer davantage de temps à tenter de mettre fin au conflit en Ukraine, dans lequel il s’est montré jusqu'à présent « totalement inefficace ».
« Le chancelier allemand devrait consacrer plus de temps à mettre fin à la guerre entre la Russie et l’Ukraine [domaine dans lequel il s'est montré totalement inefficace !], ainsi qu’à remettre de l’ordre dans son propre pays, notamment en ce qui concerne les questions d’immigration et d’énergie, et moins s’ingérer dans les affaires de ceux qui éliminent la menace nucléaire iranienne, contribuant ainsi à rendre le monde, y compris l’Allemagne, plus sûr ! Président DJT ».
RT en français • Osez questionner !
🇪🇺#Merz s’oppose à l’adhésion de l’#Ukraine à l’UE à l’horizon 2027
L’Allemagne ferme la porte à une adhésion accélérée de l’Ukraine à l’Union européenne. Une véritable douche froide pour Kiev qui a fait de cette adhésion sa priorité stratégique. Mais derrière le scepticisme de Berlin se cache un calcul bien froid. Pourquoi l’Union européenne promet-elle un avenir radieux à l’Ukraine sans jamais fixer d’engagement clair ? Analyse d’Igor Kourachenko.
RT en français • Osez questionner !
🇪🇺 De plus en plus de dirigeants européens se prononcent en faveur de liens avec #Moscou
Tournant majeur dans la politique européenne : le chancelier allemand Friedrich Merz fait volte-face concernant les relations avec la Russie. Longtemps fervent soutien de l'Ukraine face à l'agression russe, #Merz appelle désormais à une restauration des liens avec Moscou… les détails avec Antoine Cléraux.
RT en français • Osez questionner !
La premier Giorgia #Meloni, al termine della riunione plenaria dell'Unione africana ad Addis Abeba, dichiara: "Credo che #Merz faccia una valutazione corretta quando dice che l'Europa deve occuparsi di se stessa, che deve fare di più, per esempio sulla sicurezza, sulla colonna europea della Nato. Su questo io sono d'accordo, indipendentemente dal rapporto con gli Stati Uniti"
@UltimoraPolitics24
🇮🇹🇩🇪#Meloni e #Merz hanno firmato un Protocollo per la cooperazione strategica Italia-Germania, riaffermando "l'importanza fondamentale di un forte legame transatlantico tra Europa e Stati Uniti" e l'impegno a rispettare "integrità territoriale e sovranità".
@UltimoraPolitics24