目录

基本概念

演示及代码

打包下载


基本概念

关键是逻辑,因为数据都存储在数据结构中,如何把数据结构里面的东西显示到界面上,这才是分页的关键!估计稍微有代码量的程序员看到这就知道该怎么做了。

这里以ListWidget为例。做一个分页的功能;

演示及代码

演示如下:

下一页:

上一页:

程序结构如下:

源码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QVector>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();protected:void setListWidget(const int &currentPage);protected slots:void upBtnClicked();void downBtnClicked();private:Ui::Widget *ui;QVector<QString> m_vec;int m_pageCount;int m_currentPageNum;   //当前页数int m_countPageNum;        //总页数
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle("CSDN IT1995");m_pageCount = 52;        //如果每页52条for(int i = 0; i < 666; i++){m_vec << "第 " + QString::number(i) + " 条";}//默认第一页setListWidget(1);connect(ui->upPushButton, SIGNAL(clicked()), this, SLOT(upBtnClicked()));connect(ui->downPushButton, SIGNAL(clicked()), this, SLOT(downBtnClicked()));
}Widget::~Widget()
{delete ui;
}void Widget::setListWidget(const int &currentPage)
{if(currentPage <= 0){qDebug() << "Error: The currentPage can't be 0";return;}int startNum = m_pageCount * (currentPage - 1);ui->listWidget->clear();for(int i = 0; i < m_pageCount; i++){if(startNum + i >= m_vec.size())break;ui->listWidget->addItem(m_vec[startNum + i]);}m_currentPageNum = currentPage;m_countPageNum = m_vec.size() / m_pageCount + 1;ui->currentPageLabel->setText(QString::number(m_currentPageNum));ui->countPageLabel->setText(QString::number(m_countPageNum));}void Widget::upBtnClicked()
{setListWidget(m_currentPageNum - 1);
}void Widget::downBtnClicked()
{if(m_currentPageNum >= m_countPageNum)return;setListWidget(m_currentPageNum + 1);
}

打包下载

https://github.com/fengfanchen/Qt/tree/master/pagingTable

Qt工作笔记-列表的分页显示(Qt Widgets框架)相关推荐

  1. Qt工作笔记-如何打包我们用 Qt 写的软件 - Linux 篇

    个人补充下,这里打包的机器和部署都一个内核,最好是一个厂家的. 原文地址: https://zhuanlan.zhihu.com/p/49919048 概述 这部分内容其实官方文档已经有介绍,包括三部 ...

  2. Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包

    原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...

  3. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)

    QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...

  4. QT学习笔记(二):QT MinGW 和 MSVC 编译方式

    QT学习笔记(二):QT MinGW 和 MSVC 编译方式 Qt 中有两种方式编译:一种是MinGW ,另一种MSVC,是使用两种不同的编译器. 1.MSVC是指微软的VC编译器: 2.MingGW ...

  5. Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板

    原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/90 ...

  6. Qt工作笔记-使用SQL中的LIMIT进行数据分页

    目录 概念 操作 概念 这里使用SQL语言的中LIMIT的特点进行分页显示.这个关键字我就不多说了,现在来看运行截图! 表结构如下: 程序一开始运行: 分页显示: 操作 关键源码如下: sql.h # ...

  7. C/C++|Qt工作笔记-4种方法判断当前对象(类)名或标识(继承发,typeid法,元对象className()法,Q_CLASSINFO法)

    回想起3个月前,刚刚参加工作也做过类似的笔记,但只有2种方法,估计刚毕业没有什么墨水,经过3个月时间又多了2种方法: 这些方法都可用于RTTI 第一个方法是继承发(C++中很推荐用这个,感觉用这个结构 ...

  8. Qt工作笔记-在Graphics上写文本(QGraphicsSimpleTextItem与QGraphicsTextItem的基本使用)

    查了下文档发现就这2个, 一个是QGraphicsTextItem,另外一个是QGraphicsSimpleTextItem 从官方对QGraphicsTextItem中的描述中可以看到: 这个QGr ...

  9. Qt工作笔记-Qt元对象系统解析【2合1】

    博文转载地址: https://blog.csdn.net/spwper/article/details/51332187 说Qt信号与槽是一个很好机制,不如说Qt的元对象系统很强大.这也是大家讲Qt ...

最新文章

  1. 看着像学生,实为博导、教授!发过4篇CNS,刚刚又获重要大奖
  2. 26岁已经是“双一流”高校博导!读博期间也曾两次想要退学......
  3. 逐飞mini车样品说明
  4. java sql sum函数的使用方法,Springboot jpa使用sum()函数返回结果如何接收
  5. 【HDU - 2030 】汉字统计 (C语言汉字编码,长知识)
  6. Telnet三步完成连接(简短版)
  7. python内建函数举例
  8. 数据结构实验报告——线性表
  9. snort安装使用教程
  10. 银河麒麟v10_中国崛起?我对银河麒麟操作系统V10的一点小看法
  11. java实现第四届蓝桥杯猜年龄
  12. 笔记本电脑查看电池损耗的方法
  13. SAP修改消息内容和报错类型(OBA5,SE91)
  14. REST Assured 2 - 用IDEA创建一个基本的REST Assured Maven项目
  15. 企业数字化转型:聊聊数据思维!
  16. 数字转字符串;字符串转数字
  17. 频率与听感的对应关系
  18. LeetCode 1344. 时钟指针的夹角
  19. CSS+JS实现网页(图片)特效
  20. 网站制作店铺 陆廉绿环

热门文章

  1. 为托管应用程序添加DPI Aware支持
  2. 2019年最佳Python学习路线
  3. FreeEIM 是班级的学习委员
  4. 【飞秋】存储过程与业务类实现业务的差异比较
  5. NET命令的基本用法
  6. 我端午节又来免费送书了!
  7. 学好 Web 前端的 6 点建议
  8. css和css的圣杯布局,CSS布局--圣杯布局和双飞翼布局以及使用Flex实现圣杯布局
  9. Arduino录音时间延长_如何规划好自己的时间让它产生更大价值?
  10. java读取文件指定内容_Java读取文本指定的某一行内容