python: pyQt6 QTableWidget paging
# encoding: utf-8
# 版权所有 2024 涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2023.1 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, poostgreSQL 17.0
# Datetime : 2024/12/8 9:21
# User : geovindu
# Product : PyCharm
# Project : Pysimple
# File : pyqt6tablepaging.py
# explain : 学习
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem, QPushButton
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Table with Paging")
self.resize(300,300)
# Sample data
self.data = [
['李二', '25', '深圳'],
['赵三', '30', '上海'],
['何四', '35', '重庆'],
['王五', '40', '天津'],
['张六', '28', '北京'],
['刘八', '32', '南京'],
['肖八', '27', '西安'],
['钱九', '36', '井岗山'],
['江十', '29', '南昌'],
['汪一', '31', '杭州'],
]
self.page_size = 3
self.current_page = 0
self.rect=(2,4,200,280)
self.table = QTableWidget()
self.table.setColumnCount(3)
self.table.setHorizontalHeaderLabels(['Name', 'Age', 'City'])
self.table.geometry=self.rect
self.rect2 = (2, 220, 220, 280)
self.prev_button = QPushButton("Previous")
self.next_button = QPushButton("Next")
self.prev_button.clicked.connect(self.prev_page)
self.next_button.clicked.connect(self.next_page)
self.prev_button.geometry=self.rect2
layout = QVBoxLayout()
layout.addWidget(self.table)
layout.addWidget(self.prev_button)
layout.addWidget(self.next_button)
self.setLayout(layout)
self.update_table()
def update_table(self):
start_index = self.current_page * self.page_size
end_index = start_index + self.page_size
self.table.setRowCount(0)
for row_data in self.data[start_index:end_index]:
row = self.table.rowCount()
self.table.insertRow(row)
for col, item in enumerate(row_data):
self.table.setItem(row, col, QTableWidgetItem(item))
self.prev_button.setEnabled(self.current_page > 0)
self.next_button.setEnabled(end_index < len(self.data))
def prev_page(self):
self.current_page -= 1
self.update_table()
def next_page(self):
self.current_page += 1
self.update_table()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec()
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
浙公网安备 33010602011771号