Come usare pyqt qcombbobox

Come usare pyqt qcombbobox

UN Casella combinata viene utilizzato per selezionare un elemento da un elenco di elementi, proprio come il pulsante di opzione. IL QComboBox La classe di Pyqt viene utilizzata per creare elenchi a discesa utilizzando Python Script. Presenta un elenco di elementi da selezionare l'utente. Gli elementi del combobox possono essere aggiunti, modificati e rimossi usando lo script. È possibile selezionare più elementi come il pulsante della casella di controllo dall'elenco degli elementi dal combobox, quindi si chiama ListBox. Questo tutorial mostra come utilizzare QComboBox per creare un elenco a discesa in Python.

Metodi QCOMBOBOX

La classe QCOMBOBOX contiene molti metodi per eseguire vari compiti relativi a ComboBox. Alcuni dei metodi più comunemente usati di questa classe sono descritti di seguito:

Nome metodo Scopo
contare() Utilizzato per contare il numero totale di elementi nell'elenco.
Aggiungi articolo() Utilizzato per aggiungere un singolo nuovo elemento all'elenco.
additems () Utilizzato per aggiungere più elementi all'elenco.
ItemText () Usato per leggere il testo di un particolare elemento basato su un indice.
setItemText () Utilizzato per impostare il testo di un particolare elemento in base a un indice.
CurrentText () Utilizzato per leggere il testo dell'elemento selezionato.
CurrentIndex () Utilizzato per leggere l'indice dell'elemento selezionato.
chiaro() Utilizzato per eliminare tutti gli elementi dall'elenco.
evidenziato () Utilizzato quando viene evidenziato un elemento nell'elenco.
attivato () Utilizzato quando un elemento è selezionato dall'utente.
CurrentIndexChanged () Utilizzato quando l'elemento nell'elenco è cambiato.

Utilizzo ComboBox

Le seguenti sezioni forniscono esempi che spiegano alcuni usi diversi di ComboBox usando il modulo QCOMBOBOX della libreria PYQT.

Esempio 1: crea un semplice elenco a discesa

Questo esempio mostra come creare un semplice elenco a discesa utilizzando la classe QCOMBOBOX. Qui, viene creato un elenco a discesa di cinque elementi ed è allegato a una funzione personalizzata che stampa il valore selezionato dall'elenco. Un'etichetta viene utilizzata nella funzione dell'elenco a discesa per visualizzare il testo statico e un'altra etichetta viene utilizzata sotto l'elenco a discesa per mostrare il valore selezionato.

# Importa i moduli necessari
Import sys
da pyqt5.QtWidgets Import (Qapplication, Qwidget, Qlabel, QvBoxLayout, QComboBox)
# Dichiarare classe per creare il combobox
Classe ComboExample (Qwidget):
def __init __ (self):
super().__dentro__()
# Imposta l'etichetta prima del combobox
se stesso.topLabel = QLabel ('Seleziona il tuo linguaggio di programmazione preferito:', self)
# Definisci il combobox con gli oggetti
comboBox = qcombObox (self)
casella combinata.additem ('php')
casella combinata.additem ('python')
casella combinata.additem ('perl')
casella combinata.additem ('bash')
casella combinata.additem ('java')
# Imposta l'etichetta dopo il combobox
se stesso.BottomLabel = qlabel (", self)
se stesso.BOTTINGLABEL.regolare ()
# Definisci la scatola del layout valtico
v_layout = qvBoxLayout ()
v_layout.AddWidget (sé.toplabel)
v_layout.ADDWIDGET (COBOBOX)
v_layout.AddWidget (sé.fonte di fondo)
# Chiama il metodo personalizzato se viene selezionato qualsiasi elemento
casella combinata.attivato [STR].Connetti (Self.Onselected)
# Imposta le configurazioni per la finestra
se stesso.SetContentsmargins (20, 20, 20, 20)
se stesso.setLayout (v_layout)
se stesso.Sposta (800, 300)
se stesso.setWindowTitle ("Uso di ComboBox")
# Funzione personalizzata per leggere il valore dell'elemento selezionato
def onselected (self, txtval):
txtval = "\ nyou hanno selezionato:" + txtval
se stesso.BOTTINGLABEL.setText (txtval)
# Crea oggetto app ed esegui l'app
app = Qapplication (sys.argv)
comboBox = comboexample ()
casella combinata.spettacolo()
app.Exec ()

Se l'utente fa clic sull'elenco a discesa dopo aver eseguito lo script, verrà visualizzato l'elenco seguente.

Se l'utente seleziona il valore Bash Dall'elenco a discesa, il valore della seconda etichetta verrà modificato in "Hai selezionato: bash.'

Esempio 2: creare un combobox usando l'elenco

Nell'esempio precedente, l'elenco a discesa è stato creato con dati statici utilizzando il metodo additem () della classe QCOMBOBOX. Questo esempio mostra come aggiungere più elementi nell'elenco a discesa definendo un elenco di Python. Innanzitutto, aggiungeremo testo statico al primo elemento dell'elenco a discesa utilizzando il metodo additem (). Successivamente, definiremo un elenco di cinque elementi nello script e aggiungeremo questi elementi all'elenco a discesa utilizzando il metodo additems (). Una funzione personalizzata è allegata all'elenco a discesa per visualizzare il messaggio nell'etichetta in base alla selezione dell'utente.

# Importa i moduli necessari
Import sys
da pyqt5.Qtwidgets Import *
# Dichiara la classe per creare ComboBox utilizzando i dati dell'elenco
Classe ComboExample (QmainWindow):
def __init __ (self):
super().__dentro__()
# Imposta il titolo della finestra
se stesso.setWindowTitle ("ComboBox con dati di elenco")
# Imposta la geometria per la finestra
se stesso.Setgeometry (100, 100, 350, 150)
# Crea combobox
se stesso.comboBox = qcombObox (self)
# Imposta la geometria per il combobox
se stesso.casella combinata.Setgeometry (30, 30, 200, 30)
# Definisci gli elementi dell'elenco per il combobox
src_engines = ["Google.com "," Yahoo.com "", chiedi.com "," Baidu.com "," Yandex.com "]
# Abilita l'opzione modificabile di ComboBox
se stesso.casella combinata.setEdible (true)
# Imposta il primo elemento per il combobox
se stesso.casella combinata.ADDITEM ("Seleziona motore di ricerca")
# Aggiungi più elementi nell'elenco ComboBox
se stesso.casella combinata.additems (src_engines)
# Definisci l'etichetta nella parte inferiore del combobox per fornire un messaggio per l'utente
se stesso.mSglabel = qlabel (", self)
# Imposta la geometria per l'etichetta
se stesso.msglabel.Setgeometry (30, 60, 290, 60)
# Chiama la funzione personalizzata quando viene selezionato qualsiasi elemento
se stesso.casella combinata.attivato [STR].Connetti (Self.OnClicked)
# Sposta la posizione della finestra
se stesso.Sposta (800, 400)
# Visualizza la finestra
se stesso.spettacolo()
# Definire un metodo per gestire l'evento click di combobox
def onclicked (self, val):
# Controllare che qualsiasi elemento è selezionato dall'utente o no
Se val == "Seleziona motore di ricerca":
messaggio = "Non hai selezionato nulla."
altro:
messaggio = "Il tuo motore di ricerca preferito è" + val
# Visualizza il testo del messaggio nell'etichetta
se stesso.msglabel.settext (messaggio)
# Visualizza il messaggio nella console
Stampa (messaggio)
# Crea l'oggetto app
app = Qapplication (sys.argv)
# Crea un oggetto dell'oggetto di classe
combo = combboexample ()
# Esegui l'app
app.Exec ()

Se l'utente fa clic sull'elenco a discesa dopo aver eseguito lo script, verrà visualizzato l'elenco seguente.

Se l'utente seleziona qualsiasi elemento tranne il primo elemento nell'elenco a discesa, il valore selezionato verrà visualizzato nell'etichetta combinando con l'altro testo.

Se l'utente seleziona il primo elemento nell'elenco a discesa, quindi il valore "Non hai selezionato nulla'sarà mostrato nell'etichetta.

Conclusione

Questo articolo ti ha mostrato come creare e utilizzare elenchi a discesa in Python usando il QComboBox classe usando semplici esempi per aiutarti a comprendere meglio l'uso di questa classe.