Pitão

Como usar PyQt QTableWidget

Como usar PyQt QTableWidget
Uma tabela é usada para exibir dados em um formato estruturado, de acordo com linhas e colunas. O QTableWidget classe de PyQt pode ser usada em Python para exibir dados em forma tabular para tarefas relacionadas à pesquisa ou análise de dados. O conteúdo da tabela pode ser gerado a partir de diferentes tipos de armazenamento, como listas ou tabelas bidimensionais, tabelas de banco de dados, arquivos JSON, etc.  Uma ou mais tabelas podem ser criadas usando QTableWidget no aplicativo PyQt. Este tutorial mostra como usar QTableWidget para criar vários tipos de tabelas usando o script Python.

Métodos Necessários

O QTableWidget classe inclui muitos métodos para realizar tarefas relacionadas à criação de tabelas. Alguns dos métodos mais comumente usados ​​desta classe são explicados abaixo:

Nome do Método Objetivo
setRowCount () Usado para definir o número de linhas.
setColumnCount () Usado para definir o número de colunas.
setHorizontalHeaderLabels () Usado para definir os rótulos do cabeçalho da tabela.
setItem () Usado para definir o valor da célula da tabela.
resizeColumnsToContents () Usado para redimensionar as colunas da tabela com base no conteúdo.
resizeRowsToContents () Usado para redimensionar as linhas da tabela com base no conteúdo.
setMinimumWidth () Usado para definir a largura mínima da mesa.
setMinimumHeight () Usado para definir a altura mínima da mesa.
mostrar() Usado para exibir a mesa.

Uso de QTableWidget

As seções a seguir fornecem exemplos simples para explicar como criar uma tabela no aplicativo PyQt usando dados estáticos e dados de lista.

Exemplo 1: criar uma tabela simples usando dados estáticos

O script a seguir cria uma tabela de dados estáticos com cinco linhas e quatro colunas usando o QTableWidget aula. Dois para loops com valores de intervalo foram usados ​​no script para adicionar os dados estáticos nas células da tabela. As posições de linha e coluna de cada célula foram adicionadas como o conteúdo de cada célula. O QDesktopWidget é usado no script para mostrar a janela com a mesa no centro da tela.

# Importe as bibliotecas necessárias
import sys
de PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
de PyQt5.QtCore import QSize
# Defina a classe para criar a tabela com dados estáticos
classe SimpleTable (QMainWindow):
def __init __ (self):
# Chame o construtor pai
super().__iniciar__()
# Defina o tamanho e o título da janela
auto.setMinimumSize (QSize (420, 150))
auto.setWindowTitle ("Tabela simples com dados estáticos")
# Crie a tabela com as propriedades necessárias
table = QTableWidget (self)
tabela.setColumnCount (4)
tabela.setRowCount (5)
tabela.setMinimumWidth (500)
tabela.setMinimumHeight (500)
# Defina os cabeçalhos da tabela
tabela.setHorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Defina os valores da tabela
para i no intervalo (5):
para j no intervalo (4):
tabela.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Redimensionar as linhas e colunas com base no conteúdo
tabela.resizeColumnsToContents ()
tabela.resizeRowsToContents ()
# Exibir a mesa
tabela.mostrar()
# Exibe a janela no centro da tela
win = self.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().Centro()
vencer.moveCenter (pos)
auto.mover (ganhar.topLeft ())
auto.mostrar()
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.mostrar()
aplicativo.exec ()

A seguinte janela com uma tabela iráaparecer o script acima é executado. De acordo com os valores da para loops, o valor da célula da primeira linha e da primeira coluna é 'Linha-1, Col-1,'e o valor da célula da última linha e última coluna é'Linha-5, Col-4.'

Exemplo 2: Criar tabela com dica de ferramenta usando dicionário e dados de lista

O script a seguir cria uma tabela com o conteúdo de um dicionário Python e lista usando o QTableWidget aula. O script também adiciona um texto de dica de ferramenta para o cabeçalho da tabela. Um dicionário Python chamado marcas também é declarado no script. Os códigos do curso são usados ​​como os valores-chave do dicionário. Uma lista Python é declarada para definir os IDs dos alunos. Os valores-chave do dicionário são adicionados ao cabeçalho da tabela, os valores da lista são adicionados à primeira coluna da tabela e os valores do dicionário são adicionados às outras colunas da tabela.

# Importe os módulos necessários
import sys
de PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Declara uma variável de dicionário com marcas
marcas = '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]
classe TableFromList (QTableWidget):
def __init __ (self, data, * args):
# Chame o construtor pai
QTableWidget.__init __ (self, * args)
# Declare uma lista do IDS do aluno
auto.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Defina as configurações necessárias para a mesa
auto.dados = dados
auto.resizeColumnsToContents ()
auto.resizeRowsToContents ()
auto.setColumnWidth (0, 100)
para i no intervalo (4):
auto.setColumnWidth (i, 80)
auto.setMinimumWidth (400)
auto.setWindowTitle ("Marca de Folha")
# Declare a variável para definir o conteúdo do cabeçalho
cabeçalhos = []
cabeçalhos.acrescentar(")
# for loop para ler as chaves do dicionário
para n, digite enumerar (classificado (self.dados.chaves())):
cabeçalhos.anexar (chave)
# for loop para ler os valores do dicionário
para m, item em enumerar (self.dados [chave]):
ID = QTableWidgetItem (self.ID_list [m])
auto.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (item))
auto.setItem (m, n + 1, newVal)
# Defina o rótulo do cabeçalho da tabela
auto.setHorizontalHeaderLabels (cabeçalhos)
# Defina as dicas para os cabeçalhos
auto.horizontalHeaderItem (1).setToolTip ("Multimídia")
auto.horizontalHeaderItem (2).setToolTip ("Artificial Intelligent")
auto.horizontalHeaderItem (3).setToolTip ("Banco de dados avançado")
auto.horizontalHeaderItem (4).setToolTip ("Programação Unix")
# Leia o valor particular da célula
auto.clicado.conectar (eu mesmo.on_click)
# Exibe a janela no centro da tela
win = self.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().Centro()
vencer.moveCenter (pos)
auto.mover (ganhar.topLeft ())
auto.mostrar()
def on_click (self):
para ItemVal em si mesmo.itens selecionados():
# Leia o valor do cabeçalho com base na célula selecionada
sujeito = eu.horizontalHeaderItem (ItemVal.coluna()).texto()
# Imprime as informações detalhadas da marca
print ("\ n", self.ID_list [ItemVal.row ()], "got", ItemVal.texto (), "em", assunto)
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
tabela = TableFromList (marcas, 5, 5)
tabela.mostrar()
aplicativo.exec ()

A seguinte janela com a tabela aparecerá após o script acima ser executado.

Conclusão

Este tutorial mostrou como criar tabelas com dados fixos, dados de dicionário e dados de lista usando dois exemplos. As tabelas também podem ser criadas com dados dinâmicos usando tabelas de banco de dados ou outras fontes de dados.

Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...
Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...