简介

1.使用QTableWidget实现了首页,上下页切换,尾页,以及跳转。

上代码

widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void updataPage();void updataPageData();void initHeader(const QStringList &headers);void addLogData(const QVariantList &data);void addLogDatas(const QList<QVariantList> &datas);
private slots:void on_pushButton_3_clicked();void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();private:Ui::Widget *ui;QList<QVariantList> m_lDatas;int currentPageSum;int pageSum;int currentPage;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);initHeader(QStringList() << "行号" << "内容");currentPageSum = 50;currentPage = 1;for (int i = 1; i <= 100000; i++) {QVariantList varList;varList << i << QString("测试");m_lDatas.push_back(varList);}addLogDatas(m_lDatas);
}Widget::~Widget()
{delete ui;
}void Widget::updataPage()
{if (m_lDatas.size() <= 50) {pageSum = 1;}if ((m_lDatas.size() % 50) == 0) {pageSum = m_lDatas.size() / 50;}else {pageSum = (m_lDatas.size() / 50) + 1;}ui->label->setText(QString("%1/%2").arg(currentPage).arg(pageSum));
}void Widget::updataPageData()
{if (currentPage == 0) {return;}//获取具体下标 (当前页号*当前页的总数)-当前页的总数)= 某一页的第一个的具体数据下标int index = (currentPage * currentPageSum) - currentPageSum;//删除for(int row = ui->logTabWidget->rowCount() - 1;row >= 0; row--){ui->logTabWidget->removeRow(row);}int i = 0;for (; index < m_lDatas.size(); ++index) {if (index >= (currentPage * currentPageSum)) {break;}int rowcount = ui->logTabWidget->rowCount();ui->logTabWidget->insertRow(rowcount);QVariantList varList = m_lDatas.at(index);for (int j = 0; j < varList.size(); ++j) {QTableWidgetItem* item = new QTableWidgetItem();item->setData(0, varList.at(j));item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);ui->logTabWidget->setItem(i, j, item);}i++;}
}void Widget::initHeader(const QStringList &headers)
{ui->logTabWidget->setColumnCount(headers.size());ui->logTabWidget->setHorizontalHeaderLabels(headers);ui->logTabWidget->verticalHeader()->setHidden(false);ui->logTabWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);ui->logTabWidget->setColumnWidth(0, 20);ui->logTabWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);    //x先自适应宽度QHeaderView *header = ui->logTabWidget->verticalHeader();header->setHidden(true);// 隐藏行号
}void Widget::addLogData(const QVariantList &data)
{m_lDatas.append(data);updataPageData();updataPage();
}void Widget::addLogDatas(const QList<QVariantList> &datas)
{//m_lDatas = datas;currentPage = 1;updataPageData();updataPage();
}void Widget::on_pushButton_3_clicked()
{//首页currentPage = 1;updataPageData();updataPage();
}void Widget::on_pushButton_clicked()
{//上一页if (currentPage == 1) {return;}currentPage--;updataPageData();updataPage();
}void Widget::on_pushButton_2_clicked()
{//下一页if (currentPage >= pageSum) {return;}currentPage++;updataPageData();updataPage();
}void Widget::on_pushButton_4_clicked()
{//尾页currentPage = pageSum;updataPageData();updataPage();}void Widget::on_pushButton_5_clicked()
{//跳转if (ui->spinBox->value() > pageSum|| currentPage == ui->spinBox->value()|| ui->spinBox->value() == 0|| pageSum == 1) {return;}currentPage = ui->spinBox->value();updataPageData();updataPage();
}

Qt表格分页,跳转,首尾页相关推荐

  1. bootstrapTable表格分页后,处理逻辑后刷新跳回第一页,没留在当前页的解决办法

    1.使用bootstrapTable表格分页后,比如在第二页里,处理了页面里的操作后,需要留在当前页,而不是跳回第一页,因此,就需要去解决一下这个问题,于是开始了百度之旅. 2.后面找到了下面的这种办 ...

  2. Word怎么删除由分节符、分页符、分栏符、表格等导致的空白页

    一个Word文档原本好好的,在反复的编辑过程也不知道为什么产生了空白页,它们应该怎么删除呢?这要看由什么导致的空白页,不同的情况删除方法有些差异,以下列举了Word怎么删除空白页七种情况,它们分别为由 ...

  3. php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转

    分页源代码,分页时上一页下一页不显示,但可以跳转 $sql="select * from product where pronum like'%$key%' or pdes like '%$ ...

  4. elementUI分页删除最后一页数据时跳转回上一页并且el-table序号递增

    elementUI分页删除最后一页数据时跳转回上一页 queryParams: {current: 1,//当前页数size: 10,//每页条数channel: undefined,}, const ...

  5. Java实现表格打印翻页_简单又实用的小文章来了----表格分页打印的那些小事(2)...

    前言 之前写过一篇表格分页打印的实践,其基本思路是按照一比一还原打印宽高,然后根据页面高度内容以及内容长度进行粗略计算,针对不能显示的进行内容分割. 相比上次逻辑稍微繁琐一点,今天分享的方式是更加简单 ...

  6. Word中表格分页前一页没有下横线(边框)问题的解决

    使用环境(蓝色粗体字为特别注意内容) 1.软件环境: Win7 Ultimate sp1.Word2007 2.参考文献:https://zhidao.baidu.com/question/93648 ...

  7. 基于jquery的无刷新表格分页

    2019独角兽企业重金招聘Python工程师标准>>> 效果图 html结构 <table id="cs_table" class="datata ...

  8. 纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理

    纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理 效果 页面 增 删 改 翻页 页面显示条数 查找 跳页 代码 结语 效果 话不多说,直接看效果,本次代码较为复杂,希望大家可以耐心阅读,不 ...

  9. 原生js实现动态表格分页(封装版)

    之前一直用的插件做表格分页,但是不同的场景用到的情况都不同,所以索性用个原生js搞一个封装好的. 后台动态获取数据进行渲染,等页面渲染成功之后在进行分页.数据的获取我用的vue,也可以用ajax等其他 ...

  10. 使用element-ui实现表格分页

    vue+element-ui实现表格分页 前言 表格分页 一.前端分页 1. 创建表格 2.分页表格 3. 添加事件 4. 完整前端分页代码 二.后端分页 1.编写请求数据的函数 2.引用请求函数 3 ...

最新文章

  1. 伯克利AI研究院:强化学习是GPT2等自回归语言模型弥补不足的良方?
  2. 云智慧CEO:APM技术难点在于前端数据采集与后端数据分析的结合
  3. 如何使用cout以全精度打印双精度值?
  4. 7.Verilog 条件语句的应用
  5. [scala-spark]11. RDD控制操作
  6. [css] rem是如何实现自适应布局的?
  7. python执行的命令_如何在Python中执行外部命令
  8. mysql三高讲解(二)2.9: mysql示例数据库sakia database的使用
  9. JSON Funcs
  10. vbox里面的Ubuntu虚拟机与主机win7之间设置共享文件夹
  11. java默认异常处理_spring boot 默认异常处理的实现
  12. 郁闷,两个伤脑筋的power script 问题
  13. 设置Eclipse自带Ant指定版本JDK和运行时参数
  14. win10双显卡怎么切换amd和英特尔_win10双显卡怎么切换
  15. Linux!为何他一人就写出这么强的系统,中国却做不出来?
  16. 【python爬虫】《中华诗词大会》诗词接龙代码实现
  17. android游戏 百度云盘下载安装,百度云盘下载,百度网盘app下载安装
  18. 学习笔记:【案例】中医证型关联规则挖掘
  19. 传输门为什么是P/N双MOS结构
  20. 肯耐珂萨荣登36氪WISE 2020企服金榜

热门文章

  1. mysql 本月老客户次月留存率_用mysql计算用户留存率
  2. 蘑菇街2016校园招聘——回文串
  3. 关联分析python代码
  4. 一台计算机安装几个操作系统,电脑装3个系统-一台电脑可以安装几个操作系统?...
  5. Ubuntu系统中如何删除一个用户
  6. 岛屿周长c语言,[IOI2008]Island 岛屿
  7. 大盘酝酿反弹中-可以短跑几天
  8. 【年终终结】2021年年末总结
  9. UA MATH524 复变函数 验证一个函数是否为调和函数
  10. 信号与系统之(二)傅里叶级数和傅里叶变换