Qt分页导航控件

最近在使用QTableWidget时,因为结果数量比较多而且又有单元格控件,为了改善效率要做分页处理。在网上找了一番,最后在http://www.cppblog.com/biao/archive/2011/10/30/159350.html 基础上修改而来,首先感谢原作者。

改后的版本:http://files.cnblogs.com/files/roadbike/PageNavigator.7z

新的效果如下图(windows系统):

改动点:

点击页码标签后,若之前有手工输入页码,先清除之;

解决页码标签内存泄漏;

页码标签padding增大为6,方便点击(可能是系统的差别,看着原版截图边距也蛮大的,在我的win10就挨得很近);

上一页、下一页与页码之间增加分隔符,避免如点击下一页时误点到页码(页码标签长度变化时比较容易点错);

setStyleSheet挪到构造函数中;

调整代码格式与类命名、统一参数命名等使其符合我们项目的标准;

其他小改动不太记得了 O(∩_∩)O哈哈哈~

使用方法,引用原文,并把类名等更新了:

    // 把分页组件加入到当前窗口
    pageNavigator = new PageNavigator();
    layout()->addWidget(pageNavigator);

当总页数改变时(如查询数据库操作得到总页数),只需要调用pageWidget的两个函数
void Widget::changeMaxPage() {
    pageNavigator->setMaxPage(ui->lineEdit->text().toInt());
    pageNavigator->setCurrentPage(1);
}
pageNavigator上的页码被点击后,会发射void currentPageChanged(int page)信号,然后主窗口里再作出相应反应,如查询分页查询数据库
原文地址:https://www.cnblogs.com/roadbike/p/5768514.html