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áriasimport 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áriosimport 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.