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(涂聚文)