需求分析: 在做一个界面工具的时候, 由于需要用QTableWidget显示查询数据库返回的内容, 但数据库返回内容较多, QTableWidget没有自带分页功能, 且界面一下显示过多内容会出现卡顿, 所以自己实现一个分页解决问题..
思路分析: 需要做两个按钮实现翻页, 一个功能为上一页, 一个功能为下一页; 需要两个标签, 一个显示当前页数, 一个显示总页数. 为实现复用, 可以把几个控件封装为一个类.这个类有以下几个功能:
1, 传入两个参数, 一个是数据总的长度, 一个是每一页显示的长度, 即将来的表格需要显示多少条数据, 每一页显示几行.
2, 两个按钮点击后触发两个功能, 一个是刷新分页导航栏的页数显示, 一个是刷新表格上的内容显示.
具体实现与说明:
class IndexBar:
def __init__(self, parent):
self.index_bar = QWidget(parent)
self.index_bar.setFixedSize(130, 35)
self.layout = QHBoxLayout()
self.index_bar.setLayout(self.layout)
self.layout.addStretch()
self.btn_left = QPushButton('<<')
self.btn_left.setStyleSheet("QPushButton{border:0;font-size:16px}QPushButton::hover{background-color:green}")
self.layout.addWidget(self.btn_left)
self.label_page = QLabel('1')
self.label_page.setStyleSheet