Reading about Python? Actually practice it. Try PyChallenge free

Python Tutorial

PyQt5 table

In this article you will learn how to use tables with PyQt5. You can add one or more tables to any PyQt application or window.

Tables can have multiple rows and columns. This can be specified with setRowCount() and setColumnCount().

PyQt5 table

To add a table, you will need to import QTableWidget and QTableWidgetItem.

Related course:
Practice Python with interactive exercises

Example

from PyQt5.QtWidgets import QTableWidget,QTableWidgetItem

A table is created with:

self.tableWidget = QTableWidget()

# set row count self.tableWidget.setRowCount(4)

# set column count self.tableWidget.setColumnCount(2)

To add individual cells:

self.tableWidget.setItem(X,Y, QTableWidgetItem("TEXT"))

PyQt5 table example The full PyQt5 table code is below:

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

class App(QWidget):

def __init__(self): super().__init__() self.title = 'PyQt5 table - pythonspot.com' self.left = 0 self.top = 0 self.width = 300 self.height = 200 self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) self.createTable()

# Add box layout, add table to box layout and add box layout to widget self.layout = QVBoxLayout() self.layout.addWidget(self.tableWidget) self.setLayout(self.layout)

# Show widget self.show()

def createTable(self): # Create table self.tableWidget = QTableWidget() self.tableWidget.setRowCount(4) self.tableWidget.setColumnCount(2) self.tableWidget.setItem(0,0, QTableWidgetItem("Cell (1,1)")) self.tableWidget.setItem(0,1, QTableWidgetItem("Cell (1,2)")) self.tableWidget.setItem(1,0, QTableWidgetItem("Cell (2,1)")) self.tableWidget.setItem(1,1, QTableWidgetItem("Cell (2,2)")) self.tableWidget.setItem(2,0, QTableWidgetItem("Cell (3,1)")) self.tableWidget.setItem(2,1, QTableWidgetItem("Cell (3,2)")) self.tableWidget.setItem(3,0, QTableWidgetItem("Cell (4,1)")) self.tableWidget.setItem(3,1, QTableWidgetItem("Cell (4,2)")) self.tableWidget.move(0,0)

# table selection change self.tableWidget.doubleClicked.connect(self.on_click)

@pyqtSlot() def on_click(self): print("\n") for currentQTableWidgetItem in self.tableWidget.selectedItems(): print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text()) if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())

Download PyQT5 Examples

BackNext