python: pyQt6 QTableWidget paging
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | # 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(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2022-12-08 node.js : request to https://registry.npmjs.org/vue failed, reason: connect ETIMEDOUT
2016-12-08 初学Python