Come usare pyqt qtablewidget

Come usare pyqt qtablewidget
Una tabella viene utilizzata per visualizzare i dati in un formato strutturato, secondo righe e colonne. IL QtableWidget La classe di PYQT può essere utilizzata in Python per visualizzare i dati in forma tabulare per attività relative alla ricerca o all'analisi dei dati. Il contenuto della tabella può essere generato da diversi tipi di archiviazione, come elenchi o tabelle bidimensionali, tabelle di database, file JSON, ecc. Una o più tabelle possono essere create utilizzando QtableWidget nell'applicazione PYQT. Questo tutorial mostra come usare QtableWidget Per creare vari tipi di tabelle usando lo script Python.

Metodi necessari

IL QtableWidget La classe include molti metodi per eseguire compiti relativi alla creazione di tabelle. Alcuni dei metodi più comunemente usati di questa classe sono spiegati di seguito:

Nome metodo Scopo
setRount () Utilizzato per definire il numero di righe.
setColumnCount () Utilizzato per definire il numero di colonne.
SethorizontalHeadeLerlabels () Utilizzato per impostare le etichette di intestazione del tavolo.
setItem () Utilizzato per impostare il valore della cella della tabella.
ResizeColumnStocontents () Utilizzato per ridimensionare le colonne della tabella in base al contenuto.
resizerowstocontents () Utilizzato per ridimensionare le righe della tabella in base al contenuto.
setminimumwidth () Utilizzato per impostare la larghezza minima della tabella.
setminimumheight () Utilizzato per impostare l'altezza minima della tabella.
spettacolo() Utilizzato per visualizzare la tabella.

QtableWidget Utilizzo

Le seguenti sezioni forniscono esempi semplici per spiegare come creare una tabella nell'applicazione PYQT utilizzando dati statici ed elenca i dati.

Esempio 1: creare una tabella semplice utilizzando i dati statici

Il seguente script crea una tabella di dati statici con cinque righe e quattro colonne usando il QtableWidget classe. Due per I loop con valori di intervallo sono stati utilizzati nello script per aggiungere i dati statici nelle celle della tabella. Le posizioni di riga e colonna di ciascuna cella sono state aggiunte come contenuto di ogni cella. IL Qdesktopwidget viene utilizzato nello script per visualizzare la finestra con la tabella al centro dello schermo.

# Importa librerie necessarie
Import sys
da pyqt5.QtWidgets Import Qapplication, QmainWindow, QTableWidget, QTableWidgeTem, QdesktopWidget
da pyqt5.Qtcore Import QSize
# Definisci la classe per creare la tabella con dati statici
Classe semplice (QmainWindow):
def __init __ (self):
# Chiama il costruttore genitore
super().__dentro__()
# Imposta le dimensioni e il titolo della finestra
se stesso.setminimumumumumsze (QSize (420, 150))
se stesso.setWindowTitle ("Tabella semplice con dati statici")
# Crea la tabella con le proprietà necessarie
Tabella = QTableWidget (self)
tavolo.SetColumnCount (4)
tavolo.SetRount (5)
tavolo.setminimumwidth (500)
tavolo.Setminimumheight (500)
# Imposta le intestazioni del tavolo
tavolo.SethorizontalHeadeLerlabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Imposta i valori della tabella
per i nell'intervallo (5):
per j in gamma (4):
tavolo.setitem (i, j, qtablewidgetitem ("riga-" + str (i + 1) + ", col-" + str (j + 1)))
# Ridimensionare le righe e le colonne in base al contenuto
tavolo.ResizeColumnStocontents ()
tavolo.resizerowstocontents ()
# Visualizza la tabella
tavolo.spettacolo()
# Visualizza la finestra al centro dello schermo
Win = Self.frameGeometry ()
pos = qdesktopwidget ().DisponitGeometry ().centro()
vincita.MoveCenter (POS)
se stesso.mossa (vincere.a sinistra in alto())
se stesso.spettacolo()
# Crea oggetto app ed esegui l'app
app = Qapplication (sys.argv)
mw = semplicie ()
MW.spettacolo()
app.Exec ()

Viene visualizzata la finestra seguente con una tabella, viene eseguito lo script sopra. Secondo i valori del per Loops, il valore della cella della prima riga e la prima colonna è 'Row-1, Col-1,'E il valore cellulare dell'ultima riga e dell'ultima colonna è'Row-5, Col-4.'

Esempio 2: creare la tabella con la punta degli strumenti utilizzando i dati del dizionario ed elenco

Il seguente script crea una tabella con il contenuto di un dizionario di Python ed elenco usando il QtableWidget classe. Lo script aggiunge anche un testo della punta degli strumenti per l'intestazione della tabella. Un dizionario Python chiamato segni è anche dichiarato nella sceneggiatura. I codici del corso sono usati come valori chiave del dizionario. Viene dichiarato un elenco di Python per definire gli ID studente. I valori chiave del dizionario vengono aggiunti all'intestazione della tabella, i valori dell'elenco vengono aggiunti alla prima colonna della tabella e i valori del dizionario vengono aggiunti alle altre colonne della tabella.

# Importa i moduli necessari
Import sys
da pyqt5.QtWidgets Import Qapplication, QTableWidget, QTableWidgeTem, QDesktopWidget
# Dichiara una variabile del dizionario con i voti
Marks = 'CSE-401': [78, 93, 67, 88, 78],
'CSE-404': [90, 59, 82, 73, 89],
'CSE-406': [81, 80, 74, 83, 67],
'CSE-407': [81, 80, 98, 83, 72]
Class TableFromList (QTableWidget):
def __init __ (self, dati, *args):
# Chiama il costruttore genitore
QtableWidget.__init __ (self, *args)
# Dichiarare un elenco degli ID studente
se stesso.Id_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Imposta le configurazioni necessarie per la tabella
se stesso.data = dati
se stesso.ResizeColumnStocontents ()
se stesso.resizerowstocontents ()
se stesso.SetColumnWidth (0, 100)
per i nell'intervallo (4):
se stesso.SetColumnWidth (i, 80)
se stesso.setminimumwidth (400)
se stesso.setWindowTitle ("Mark Sheet")
# Dichiara la variabile per impostare il contenuto dell'intestazione
headers = []
testate.aggiungere(")
# per loop per leggere le chiavi del dizionario
Per n, chiave in enumerate (ordinato (self.dati.tasti ())):
testate.append (chiave)
# per loop per leggere i valori del dizionario
Per m, oggetto in enumerate (self.dati [chiave]):
Id = qtableWidgetItem (self.Id_list [m])
se stesso.setItem (M, 0, ID)
newVal = qTableWidgetItem (STR (elemento))
se stesso.SetItem (M, N+1, NewVal)
# Imposta l'etichetta di intestazione del tavolo
se stesso.SethorizontalHeadeLerlabels (intestazioni)
# Imposta i titoli per le intestazioni
se stesso.orizzontalheaderitem (1).SetchoolTip ("multimedia")
se stesso.orizzontalheaderitem (2).SetchoolTip ("artificiale intelligente")
se stesso.orizzontalheaderitem (3).SetchoolTip ("Database avanzato")
se stesso.orizzontalheaderitem (4).SetchoolTip ("programmazione unix")
# Leggi il valore cellulare particolare
se stesso.Clicato.Connetti (Self.al clic)
# Visualizza la finestra al centro dello schermo
Win = Self.frameGeometry ()
pos = qdesktopwidget ().DisponitGeometry ().centro()
vincita.MoveCenter (POS)
se stesso.mossa (vincere.a sinistra in alto())
se stesso.spettacolo()
def on_click (self):
per itemval in sé.oggetti selezionati():
# Leggi il valore dell'intestazione in base alla cella selezionata
soggetto = self.orizzontalheaderitem (itemval.colonna()).testo()
# Stampa le informazioni di dettaglio del marchio
stampa ("\ n", self.Id_list [itemval.riga ()], "get", itemval.text (), "in", soggetto)
# Crea oggetto app ed esegui l'app
app = Qapplication (sys.argv)
Tabella = TableFromList (Marks, 5, 5)
tavolo.spettacolo()
app.Exec ()

La seguente finestra con la tabella verrà visualizzata dopo l'esecuzione dello script sopra.

Conclusione

Questo tutorial ha mostrato come creare tabelle con dati fissi, dati del dizionario ed elencare i dati utilizzando due esempi. Le tabelle possono anche essere create con dati dinamici utilizzando tabelle di database o altre origini dati.