当前位置: 首页 > news >正文

网站怎么套模板广州市建设工程交易中心网站

网站怎么套模板,广州市建设工程交易中心网站,郑州网站制作-中国互联,网站制造目录 前言1、功能描述2、代码实现2.1 ui文件2.1 头文件2.2 源码文件2.3 设计思路 4、示例5、总结 前言 在应用程序开发时经常会遇到数据分页的需求#xff0c;每一页展示特定数量的数据#xff0c;通过点击按钮翻页或者输入页码跳转到指定页。 本文介绍一个自定义分页控件每一页展示特定数量的数据通过点击按钮翻页或者输入页码跳转到指定页。 本文介绍一个自定义分页控件基本上实现了作为一个分页控件该有的功能。 1、功能描述 本分页控件支持显示总页数支持显示当前页码支持跳转到指定页支持上一页和下一页支持首页和尾页支持显示每页数量支持数据总量显示。 2、代码实现 2.1 ui文件 本分页控件采用ui文件来布局内部的组件具体布局如下图所示 2.1 头文件 头文件中每个方法都作了注释一眼就能明白其功能。 #include QWidgetnamespace Ui { class ZPageWidget; }class ZPageWidget : public QWidget {Q_OBJECTpublic:explicit ZPageWidget(QWidget *parent nullptr);~ZPageWidget();/*** brief setPageCount 设置总页数* param count 总页数*/void setPageCount(int count);int pageCount() const { return m_pageCount; }/*** brief setCurrentPage 设置当前页* param page 当前页码*/void setCurrentPage(int page);int currentPage() const{ return m_currentPage; }/*** brief setDataCount 设置数据总量* param cnt 数据总量*/void setDataCount(int cnt);int dataCount() const { return m_dataCount; }/*** brief setPerpageDataCount 设置每页数据量* param cnt 每页数据量*/void setPerpageDataCount(int cnt);int perpageDataCount() const { return m_perpageDataCount; }signals:/*** brief sign_pageChanged 页码变化信号* param page 当前页码*/void sign_pageChanged(int page);private:/*** brief pageChanged 切换页码*/void pageChanged();private slots:/*** brief slot_previousPageBtnClicked 前一页按钮槽函数*/void slot_previousPageBtnClicked();/*** brief slot_nextPageBtnClicked 后一页按钮槽函数*/void slot_nextPageBtnClicked();/*** brief slot_firstPageBtnClicked 首页按钮槽函数*/void slot_firstPageBtnClicked();/*** brief slot_lastPageBtnClicked 尾页按钮槽函数*/void slot_lastPageBtnClicked();/*** brief slot_skipPageBtnClicked 跳转页码按钮槽函数*/void slot_skipPageBtnClicked();private:Ui::ZPageWidget *ui;int m_pageCount;int m_currentPage;int m_dataCount;int m_perpageDataCount; };2.2 源码文件 ZPageWidget::ZPageWidget(QWidget *parent): QWidget(parent), ui(new Ui::ZPageWidget), m_pageCount(1), m_currentPage(1) {ui-setupUi(this);ui-lineEdit-setValidator(new QRegExpValidator(QRegExp([0-9]$)));connect(ui-btn_previous, SIGNAL(clicked()), this, SLOT(slot_previousPageBtnClicked()));connect(ui-btn_next, SIGNAL(clicked()), this, SLOT(slot_nextPageBtnClicked()));connect(ui-btn_first, SIGNAL(clicked()), this, SLOT(slot_firstPageBtnClicked()));connect(ui-btn_last, SIGNAL(clicked()), this, SLOT(slot_lastPageBtnClicked()));connect(ui-btn_skip, SIGNAL(clicked()), this, SLOT(slot_skipPageBtnClicked())); }ZPageWidget::~ZPageWidget() {delete ui; }void ZPageWidget::setPageCount(int count) {m_pageCount count;m_pageCount m_pageCount 0 ? m_pageCount : 1;if(m_currentPage m_pageCount){m_currentPage m_pageCount;}pageChanged(); }void ZPageWidget::setCurrentPage(int page) {m_currentPage page; }void ZPageWidget::setDataCount(int cnt) {m_dataCount cnt;ui-lb_totalData-setText(QString(%1:%2).arg(QString::fromLocal8Bit(总数)).arg(cnt)); }void ZPageWidget::setPerpageDataCount(int cnt) {m_perpageDataCount cnt;ui-lb_perPageData-setText(QString(%1:%2).arg(QString::fromLocal8Bit(每页)).arg(cnt)); }void ZPageWidget::pageChanged() {emit sign_pageChanged(m_currentPage);ui-lb_pageInfo-setText(QString(%1/%2).arg(m_currentPage).arg(m_pageCount)); }void ZPageWidget::slot_previousPageBtnClicked() {if(m_currentPage 1){m_currentPage--;pageChanged();} }void ZPageWidget::slot_nextPageBtnClicked() {if(m_currentPage m_pageCount){m_currentPage;pageChanged();} }void ZPageWidget::slot_firstPageBtnClicked() {if(m_currentPage ! 1){m_currentPage 1;pageChanged();} }void ZPageWidget::slot_lastPageBtnClicked() {if(m_pageCount ! m_currentPage){m_currentPage m_pageCount;pageChanged();} }void ZPageWidget::slot_skipPageBtnClicked() {int page ui-lineEdit-text().toInt();ui-lineEdit-clear();if(page 0 page m_pageCount){m_currentPage page;pageChanged();} }2.3 设计思路 该分页控件的设计思路比较简单清晰根据分页控件支持的功能将一组QWidget控件封装在一起在各个按钮槽函数中重新计算页码并将当前页码用信号的方式传递给使用者完成页码与数据的同步。 4、示例 下面这个示例代码演示了如何使用该分页控件。分页控件一般与列表或表格结合使用当页码改变时更新列表或表格中的数据。下面以分页列表为例来展示新建一个设计师界面类命名为PageControlTestui文件如下图所示 测试代码 PageControlTest::PageControlTest(QWidget *parent) :QWidget(parent),ui(new Ui::PageControlTest) {ui-setupUi(this);m_dataList QString::fromLocal8Bit(1) QString::fromLocal8Bit(2) QString::fromLocal8Bit(3) QString::fromLocal8Bit(4) QString::fromLocal8Bit(5) QString::fromLocal8Bit(6) QString::fromLocal8Bit(7) QString::fromLocal8Bit(8) QString::fromLocal8Bit(9) QString::fromLocal8Bit(10) QString::fromLocal8Bit(11) QString::fromLocal8Bit(12) QString::fromLocal8Bit(13);int perpageCnt 10;ui-pageWidget-setPerpageDataCount(perpageCnt);ui-pageWidget-setDataCount(m_dataList.size());connect(ui-pageWidget, SIGNAL(sign_pageChanged(int)), this, SLOT(slot_pageChanged(int)));int pageCount ceil(m_dataList.size() / (double)perpageCnt);ui-pageWidget-setPageCount(pageCount);}void PageControlTest::loadData() {int offset ui-pageWidget-perpageDataCount() * (ui-pageWidget-currentPage() - 1);QStringList currPageDataList m_dataList.mid(offset, ui-pageWidget-perpageDataCount());ui-listWidget-clear();for (int var 0; var currPageDataList.size(); var){ui-listWidget-addItem(currPageDataList[var]);} }void PageControlTest::slot_pageChanged(int page) {loadData(); }效果 5、总结 以上就是本文的所有内容了本文实现了一个自定义分页控件并给出一个使用示例。对此有任何疑问欢迎留言讨论
http://www.w-s-a.com/news/274529/

相关文章:

  • c 网站开发数据库连接与wordpress类似的都有哪些
  • 状元村建设官方网站长春做网站seo的
  • 做金融资讯网站需要哪些牌照海珠营销型网站制作
  • 学做网站需要买什么书手机网络
  • 寻找做电影网站团队合作西宁网站建设君博首选
  • 兴仁县城乡建设局网站爱站关键词查询
  • 漳州网站建设公司推荐wordpress更改主机
  • c2c商城网站建设方案英文网站注册
  • 电子商务网站的运营一般需要做哪些准备宣传片拍摄思路
  • 网站建设网页制作百度怎么做自己网站
  • 建设设计网站公司巴州建设局网站
  • 淘宝建设网站的好处韶关市网站建设招标
  • 佛山高端网站免费招聘网站建设
  • 申请网站就是做网站吗wordpress tag 优化
  • 建站系统排行榜菏泽机关建设网站
  • 网站群建设费用科技通信网站模板下载
  • 网站开发的流程是怎样的自己做自媒体在哪个网站比较好
  • 网站的html代码在哪网页线上开发制作
  • 免费商用自媒体图片网站做网站好的公司有哪些
  • 阿雷网站建设公司中国建筑考试网官网首页
  • 厦门网站制作网页无法跳转到建设银行网站
  • 怎么建设自己网站简述网页布局的几种方法
  • 软文营销文案100篇如何优化搜索引擎的搜索功能
  • 做网站创意杭州家具网站建设方案
  • 福州seo网站推广优化乐清建网站
  • 莆田cms建站模板简述网站设计流程
  • 班级网站建设组织机构建设注册中心网站首页
  • 即墨网站建设地址怎么在文档中做网站一点就开
  • 做网站联系方式互联网行业分析
  • 杭州网站建设索q479185700高淳网站建设