Pitone

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 tabellare 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.  È possibile creare una o più tabelle 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 include molti metodi per eseguire attività relative alla creazione di tabelle. Alcuni dei metodi più comunemente usati di questa classe sono spiegati di seguito:

Nome del metodo Scopo
setRowCount() Usato per definire il numero di righe.
setColumnCount() Usato per definire il numero di colonne.
setHorizontalHeaderEtichette() Usato per impostare le etichette di intestazione della tabella.
setItem() Usato per impostare il valore della cella della tabella.
resizeColumnsToContents() Usato 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 del tavolo.
setMinimumHeight() Utilizzato per impostare l'altezza minima del tavolo.
mostrare() Utilizzato per visualizzare la tabella.

Utilizzo di QTableWidget

Le sezioni seguenti forniscono semplici esempi per spiegare come creare una tabella nell'applicazione PyQt utilizzando dati statici e dati di elenco.

Esempio 1: creare una tabella semplice utilizzando dati statici

Il seguente script crea una tabella di dati statici con cinque righe e quattro colonne utilizzando il pulsante 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 ogni 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 le librerie necessarie
sistema di importazione
da PyQt5.QtWidgets importa QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
da PyQt5.Importazione QtCore QSize
# Definisci la classe per creare la tabella con dati statici
classe SimpleTable(QMainWindow):
def __init__(self):
# Chiama il costruttore genitore
super().__dentro__()
# Imposta la dimensione e il titolo della finestra
se stesso.setMinimumSize(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.setRowCount(5)
tavolo.setMinimumWidth(500)
tavolo.setMinimumHeight(500)
# Imposta le intestazioni della tabella
tavolo.setHorizontalHeaderLabels(["Intestazione-1", "Intestazione-2", "Intestazione-3", "Intestazione-4"])
# Imposta i valori della tabella
per i nell'intervallo (5):
per j in range(4) :
tavolo.setItem(i, j, QTableWidgetItem("Row-" + str(i+1) + " , Col-" + str(j+1)))
# Ridimensionamento delle righe e delle colonne in base al contenuto
tavolo.resizeColumnsToContents()
tavolo.resizeRowsToContents()
# Visualizza la tabella
tavolo.mostrare()
# Visualizza la finestra al centro dello schermo
vincere = me stesso.frameGeometry()
pos = QDesktopWidget().disponibileGeometria().centro()
vincere.moveCenter(pos)
se stesso.muovere (vincere).a sinistra in alto())
se stesso.mostrare()
# Crea un oggetto app ed esegui l'app
app = QApplication(sys.argomento)
mw = SimpleTable()
mw.mostrare()
app.exec()

Apparirà la seguente finestra con una tabella, lo script sopra viene eseguito. Secondo i valori di per loop, il valore della cella della prima riga e della prima colonna è 'Riga-1, Col-1,' e il valore della cella dell'ultima riga e dell'ultima colonna è 'Riga-5, Col-4.'

Esempio 2: creare una tabella con un suggerimento utilizzando il dizionario e i dati dell'elenco

Il seguente script crea una tabella con il contenuto di un dizionario Python ed elenca usando il using QTableWidget classe. Lo script aggiunge anche un testo di suggerimento per l'intestazione della tabella. Un dizionario Python chiamato segni è anche dichiarato nello script. I codici dei corsi sono usati come valori chiave del dizionario. Viene dichiarato un elenco Python per definire gli ID degli studenti. 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
sistema di importazione
da PyQt5.QtWidget importa QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Dichiara una variabile del dizionario con i segni
segni = '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, data, *args):
# Chiama il costruttore principale
QTableWidget.__init__(self, *args)
# Dichiarare un elenco degli IDS degli studenti
se stesso.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Imposta le configurazioni necessarie per il tavolo
se stesso.dati = 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("Segna foglio")
# Dichiara la variabile per impostare il contenuto dell'intestazione
intestazioni = []
intestazioni.aggiungere(")
# ciclo for per leggere le chiavi del dizionario
per n, digita enumerate(sorted(self.dati.chiavi())):
intestazioni.append (chiave)
# ciclo for per leggere i valori del dizionario
per m, elemento in enumerare(self.dati[chiave]):
ID = QTableWidgetItem(self.ID_list[m])
se stesso.setItem(m, 0, ID)
newVal = QTableWidgetItem(str(item))
se stesso.setItem(m, n+1, newVal)
# Imposta l'etichetta dell'intestazione della tabella
se stesso.setHorizontalHeaderLabels(header)
# Imposta i suggerimenti per le intestazioni
se stesso.OrizzontaleHeaderItem(1).setToolTip("Multimediale")
se stesso.OrizzontaleHeaderItem(2).setToolTip ("Artificiale intelligente")
se stesso.OrizzontaleHeaderItem(3).setToolTip("Database avanzato")
se stesso.horizontalHeaderItem(4).setToolTip("Programmazione Unix")
# Leggi il particolare valore della cella
se stesso.cliccato.connettersi (auto).al clic)
# Visualizza la finestra al centro dello schermo
vincere = me stesso.frameGeometry()
pos = QDesktopWidget().disponibileGeometria().centro()
vincere.moveCenter(pos)
se stesso.muovere (vincere).a sinistra in alto())
se stesso.mostrare()
def on_click(self):
per ItemVal in sé.oggetti selezionati():
# Leggi il valore dell'intestazione in base alla cella selezionata
soggetto = sé.horizontalHeaderItem(ItemVal.colonna()).testo()
# Stampa le informazioni di dettaglio del marchio
print("\n", auto.ID_list[ItemVal.row()], " ottenuto ", ItemVal.testo(), "in", oggetto)
# Crea un oggetto app ed esegui l'app
app = QApplication(sys.argomento)
table = TableFromList(punti, 5, 5)
tavolo.mostrare()
app.exec()

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

Conclusione

Questo tutorial ti ha mostrato come creare tabelle con dati fissi, dati del dizionario e dati dell'elenco usando due esempi. Le tabelle possono anche essere create con dati dinamici utilizzando tabelle di database o altre fonti di dati.

Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...
Come cambiare i pulsanti sinistro e destro del mouse su PC Windows 10
È abbastanza normale che tutti i mouse dei computer siano progettati ergonomicamente per gli utenti destrimani. Ma sono disponibili dispositivi mouse ...