Qt工作笔记-列表的分页显示(Qt Widgets框架)
发布日期:2021-06-30 11:01:12
浏览次数:3
分类:技术文章
本文共 2189 字,大约阅读时间需要 7 分钟。
目录
基本概念
关键是逻辑,因为数据都存储在数据结构中,如何把数据结构里面的东西显示到界面上,这才是分页的关键!估计稍微有代码量的程序员看到这就知道该怎么做了。
这里以ListWidget为例。做一个分页的功能;
演示及代码
演示如下:
下一页:
上一页:
程序结构如下:
源码如下:
widget.h
#ifndef WIDGET_H#define WIDGET_H#include#include namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = nullptr); ~Widget();protected: void setListWidget(const int ¤tPage);protected slots: void upBtnClicked(); void downBtnClicked();private: Ui::Widget *ui; QVector m_vec; int m_pageCount; int m_currentPageNum; //当前页数 int m_countPageNum; //总页数};#endif // WIDGET_H
main.cpp
#include "widget.h"#includeint 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"#includeWidget::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 ¤tPage){ 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://it1995.blog.csdn.net/article/details/89946902 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月17日 01时27分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
word文档中实现目录索引中标题加粗,前导符和页码不加粗
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
2019-04-30
《知识图谱》阅读笔记(七)
2019-04-30
《知识图谱》阅读笔记(九)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
超越白皮书8:穿云而过的闪电网络
2019-04-30
AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建
2019-04-30
JS中document对象和window对象有什么区别
2019-04-30
【python练习题】遍历1
2019-04-30
【matlab】显示图片且下方显示文字
2019-04-30
关于greater<int>以及类模板的一些理解
2019-04-30
对于时间复杂度的通俗理解
2019-04-30
如何输入多组数据并输出每组数据的和?
2019-04-30
基于CentOS 7的Linux常用命令行命令
2019-04-30