Qt工作笔记-列表的分页显示(Qt Widgets框架)
发布日期:2021-06-30 11:01:12 浏览次数:2 分类:技术文章

本文共 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 &currentPage);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"#include 
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 
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://it1995.blog.csdn.net/article/details/89946902 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:QML工作笔记-为PushButton戴上皮肤
下一篇:QML工作笔记-PC端和Android端布局错位问题

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月16日 17时51分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章