最近在使用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)信号,然后主窗口里再作出相应反应,如查询分页查询数据库

最新文章

  1. Struts2学习笔记 - Action篇<动态方法调用>
  2. 屌丝程序员的梦想 (六) 我也写个开源CMS
  3. 【leetcode】Maximum Gap
  4. ant命令总结
  5. UML架构(转载)
  6. VS2010安装EntityFramework5.0
  7. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
  8. Java中的I/O流
  9. (入门篇 NettyNIO开发指南)第三章-Netty入门应用
  10. ORA-00600[17059]错误
  11. 华为悦盒 EC6108V9U 破解过程全记录(root扫盲) [原创]
  12. testng的使用
  13. Loading Data into a Table;MySQL从本地向数据库导入数据
  14. python操作git
  15. decimal(19,6)什么意思
  16. [Day1]常用Dos命令,Java相关描述及基础
  17. phpstorm 配置点右上角浏览器图标时用浏览器打开当前页面
  18. python catch socket timeout
  19. What's the #pragma pack
  20. 利用 share code 插件同步代码片段

热门文章

  1. 各大语言性能对比PK数据
  2. ASP.NET MVC5+EF6+LayUI实战教程,通用后台管理系统框架(6)- 创建数据库
  3. 基于vue实现一个简单的MVVM框架(源码分析)
  4. ICAO 附件十四面课件分享
  5. 【Leetcode】338. Bit位计数
  6. 记一次Java AES 加解密 对应C# AES加解密 的一波三折
  7. maven根据不同的运行环境,打包不同的配置文件
  8. 乐字节-Java8新特性之Stream流(上)
  9. leetcode实践:通过链表存储两数之和
  10. 卡片游戏(hdu4550)贪心