Регулярно приходится писать и ревьюить код, где используется 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
#Israele
Ministro della Giustizia Yariv #Levin (#Likud|ECR): “Come membro del Likud, rispetterò la decisione del Primo Ministro sulla riforma della giustizia. Lo affermo in piena consapevolezza del fatto che la situazione possa condurre al crollo del governo e dello stesso partito Likud.”
@OsservatorioEsteri
#Israele
Il premier #Netanyahu (#Likud|ECR) ha annunciato di aver revocato il decreto con cui aveva disposto le dimissioni del Ministro della Difesa Yoav #Gallant (#Likud|ECR): “Abbiamo avuto delle divergenze, ma Gallant rimane nella sua posizione.”
@OsservatorioEsteri
#Israele#Gaza
Ynet riporta che alti funzionari dell'Ufficio del Primo Ministro Benjamin #Netanyahu (#Likud|ECR|PfE) hanno dichiarato che "la tregua è stata rotta, occuperemo completamente la Striscia di Gaza. Ci saranno anche attività nelle aree in cui sono tenuti gli ostaggi. La decisione è stata presa: Israele occuperà la Striscia di Gaza. #Hamas non rilascerà altri ostaggi senza la resa completa, non ci arrenderemo. Se non agiamo ora, gli ostaggi moriranno di fame e Gaza rimarrà sotto il controllo di Hamas."
@OsservatorioEsteri
#Israele#Gaza
Il Primo Ministro israeliano Benjamin #Netanyahu (#Likud|ECR) ha annunciato che i combattimenti continueranno: “Non siamo pronti ad accettare una situazione in cui i battaglioni di #Hamas escono dai loro bunker, riprendono il controllo di Gaza e tornano a minacciare i cittadini di Israele negli insediamenti circostanti, nelle città del sud, in tutte le parti del paese
Pertanto, Israele non accetterà le richieste di Hamas, che significano la resa, e continuerà a combattere finché tutti i suoi obiettivi non saranno raggiunti".
@OsservatorioEsteri
#Israele#Palestina
Premier Benjamin #Netanyahu (#Likud|ECR): "Siamo in una guerra, non in un'operazione. #Hamas ha lanciato un attacco omicida a sorpresa contro lo Stato di Israele e i suoi cittadini. Ho ordinato innanzitutto di ripulire gli insediamenti dai militanti infiltrati e ho ordinato una mobilitazione su larga scala delle riserve. Il nemico pagherà un prezzo senza precedenti."
@OsservatorioEsteri
#USA#Israele
Il Presidente Joe #Biden (#D|Centro-sinistra) ha avuto un colloquio telefonico con il Primo Ministro israeliano Benjamin #Netanyahu (#Likud|ECR). I due leader hanno discusso della situazione a Gaza, e Biden ha sottolineato che "gli attacchi contro gli operatori umanitari e la situazione umanitaria complessiva sono inaccettabili".
La Casa Bianca fa sapere che Biden abbia chiarito la necessità che Israele "annunci e attui una serie di passi specifici, concreti e misurabili per affrontare i danni civili, le sofferenze umanitarie e la sicurezza degli operatori umanitari".
Inoltre, Biden ha affermato che la politica degli Stati Uniti "rispetto a Gaza sarà determinata dalla nostra valutazione dell'azione immediata di Israele su questi passi", sottolineando che un cessate il fuoco immediato "è essenziale per stabilizzare e migliorare la situazione umanitaria e proteggere i civili innocenti".
@OsservatorioEsteri
#USA#Israele#Iran
Il Presidente Joe #Biden (#D|Centro-sinistra) ha detto al Premier israeliano Benjamin #Netanyahu (#Likud|ECR) durante una telefonata che gli Stati Uniti non sosterranno alcun contrattacco israeliano contro l'Iran, ha dichiarato ad Axios un alto funzionario della Casa Bianca.
@OsservatorioEsteri
#CPI#Israele
La Corte Penale Internazionale ha emesso mandati d'arresto per il Primo Ministro Benjamin #Netanyahu (#Likud|ECR) e l’ex ministro della Difesa Yoav #Gallant (Likud) per crimini di guerra e crimini contro l'umanità.
@OsservatorioEsteri
#Israele#ONU
Ministro degli Esteri Israel #Katz (#Likud|ECR): "Oggi ho deciso di dichiarare il Segretario generale dell'ONU Antonio #Guterres una persona non desiderata in Israele e di vietargli l'ingresso in Israele. Coloro che non sono in grado di condannare senza ambiguità l'attacco criminale dell'Iran contro Israele, come hanno fatto quasi tutti i paesi del mondo, non sono degni di calpestare il suolo israeliano. Si tratta di un segretario generale che non ha denunciato il massacro e i crimini sessuali perpetrati dagli assassini di Hamas il 7 ottobre, e non ha portato a decisioni che li dichiareranno organizzazione terroristica. Un segretario generale che dà una spinta ai terroristi, stupratori e assassini di Hamas, Hezbollah, gli Houthis, e ora la nave madre del terrorismo globale, l'Iran, sarà ricordato come una macchia nella storia dell'ONU. Israele continuerà a proteggere i suoi cittadini e manterrà il suo status nazionale e la sua dignità con o senza Antonio Guterres."
@OsservatorioEsteri
#Israele
È stato raggiunto un accordo tra il Premier Benjamin #Netanyahu (#Likud|ECR) e l'ex Ministro della Difesa Benny #Gantz (#NUP/#BaW|Centro) per la formazione di un governo d'emergenza nazionale.
@OsservatorioEsteri
#Israele
Il partito #BaW|Centro, che esprime Benny #Gantz e Gazi #Eisenkot nel gabinetto di guerra israeliano, ha presentato una proposta per sciogliere la #Knesset.
La coalizione di unità nazionale tra BaW e il #Likud|ECR sia avvia a volgere al termine.
@OsservatorioEsteri
#Israele
La maggioranza di governo è stata sconfitta nel voto decisivo della #Knesset per selezionare il componente politico chiamato a far parte del Comitato per la selezione dei giudici. A causa di dissidi interni alla coalizione, ad essere stata eletta è la parlamentare di #YA|Centro Karine #ElHarrar, votata anche da qualche esponente della maggioranza.
Solo 11 voti, contro i 58 di ElHarrar, per Tali #Gottlieb (#Likud|ECR).
@OsservatorioEsteri