C++,QT多个窗体切换,widget,QTimer 3个页面切换跳转,使用wdiget 的方式

源码工程链接

先看效果:

onewidget.h

#ifndef ONEWIDGET_H
#define ONEWIDGET_H#include <QWidget>
#include "twowidget.h"
#include "threewidget.h"QT_BEGIN_NAMESPACE
namespace Ui { class OneWidget; }
QT_END_NAMESPACEclass OneWidget : public QWidget
{Q_OBJECTpublic:OneWidget(QWidget *parent = nullptr);~OneWidget();private slots:void vBtnJump3Process(void);void vBtnJump2Process(void);void vBtnJump1Process(int);private:Ui::OneWidget *ui;twowidget *pPage2;threeWidget *pPage3;void vInit(void);
};
#endif // ONEWIDGET_H

onewidget.cpp

#include "onewidget.h"
#include "ui_onewidget.h"
#include <QMovie>
#include <QDebug>OneWidget::OneWidget(QWidget *parent): QWidget(parent), ui(new Ui::OneWidget)
{ui->setupUi(this);this->vInit();
}OneWidget::~OneWidget()
{delete ui;
}void OneWidget::vInit(void)
{this->move(0,0);this->setWindowFlag(Qt::FramelessWindowHint);QMovie *pMovie=new QMovie("./dan.gif");ui->label->setMovie(pMovie);ui->label->setScaledContents(true);pMovie->start();connect(ui->pbtnJump2,SIGNAL(clicked()),this,SLOT(vBtnJump2Process()));connect(ui->pbtnJump3,SIGNAL(clicked()),this,SLOT(vBtnJump3Process()));this->pPage2=new twowidget;connect(this->pPage2,SIGNAL(signalBtnPage1(int)),this,SLOT(vBtnJump1Process(int)));connect(this->pPage2,SIGNAL(signalBtnPage3()),this,SLOT(vBtnJump3Process()));this->pPage3=new threeWidget;connect(this->pPage3,SIGNAL(vSingalPage1(int)),this,SLOT(vBtnJump1Process(int)));connect(this->pPage3,SIGNAL(vSingalPage2()),this,SLOT(vBtnJump2Process()));
}void OneWidget::vBtnJump3Process()
{this->pPage3->show();this->pPage2->hide();this->hide();
}void OneWidget::vBtnJump2Process()
{this->pPage2->show();this->pPage3->hide();this->hide();qDebug()<<"press"<<endl;
}void OneWidget::vBtnJump1Process(int slClickCnt)
{qDebug()<<"vBtnJump1Process "<<slClickCnt<<endl;this->show();this->pPage2->hide();this->pPage3->hide();
}

twowidget.h

#ifndef TWOWIDGET_H
#define TWOWIDGET_H#include <QWidget>namespace Ui {
class twowidget;
}class twowidget : public QWidget
{Q_OBJECTpublic:explicit twowidget(QWidget *parent = nullptr);~twowidget();private:Ui::twowidget *ui;void vInit(void);int slClickCnt=0;private slots:void vBtnPage1Process(void);void vBtnPage3Process(void);signals:void signalBtnPage1(int);void signalBtnPage3(void);
};#endif // TWOWIDGET_H

twowidget.cpp

#include "twowidget.h"
#include "ui_twowidget.h"
#include <QMovie>
#include <QDebug>twowidget::twowidget(QWidget *parent) :QWidget(parent),ui(new Ui::twowidget)
{ui->setupUi(this);this->vInit();
}twowidget::~twowidget()
{delete ui;
}void twowidget::vInit()
{this->move(0,0);this->setWindowFlag(Qt::FramelessWindowHint);QMovie *pMovie=new QMovie("./dan2.gif");ui->label->setMovie(pMovie);ui->label->setScaledContents(true);pMovie->start();connect(ui->pbtnJump1,SIGNAL(clicked()),this,SLOT(vBtnPage1Process()));connect(ui->pbtnJump3,SIGNAL(clicked()),this,SLOT(vBtnPage3Process()));
}void twowidget::vBtnPage1Process()
{this->slClickCnt++;emit signalBtnPage1(this->slClickCnt);qDebug()<<"emit signal btn page1 "<<this->slClickCnt<<endl;
}void twowidget::vBtnPage3Process()
{emit signalBtnPage3();qDebug()<<"emit signal btn page3 "<<endl;
}

threeWidget.h:

#ifndef THREEWIDGET_H
#define THREEWIDGET_H#include <QWidget>
#include <QTimer>namespace Ui {
class threeWidget;
}class threeWidget : public QWidget
{Q_OBJECTpublic:explicit threeWidget(QWidget *parent = nullptr);~threeWidget();private:Ui::threeWidget *ui;void vInit();int slLcdCnt=0;int slPage3Cnt=0;QTimer *pTimer=nullptr;private slots:void vBtnPage1Process();void vBtnPage2Process();void vTimerProcess();signals:void vSingalPage1(int);void vSingalPage2(void);
};#endif // THREEWIDGET_H

threeWidget.cpp

#include "threewidget.h"
#include "ui_threewidget.h"
#include <QMovie>threeWidget::threeWidget(QWidget *parent) :QWidget(parent),ui(new Ui::threeWidget)
{ui->setupUi(this);this->vInit();
}threeWidget::~threeWidget()
{delete ui;
}void threeWidget::vInit()
{this->move(0,0);this->setWindowFlag(Qt::FramelessWindowHint);QMovie *pMovie=new QMovie("./pland.gif");ui->label->setMovie(pMovie);ui->label->setScaledContents(true);pMovie->start();connect(ui->pbtnJump1,SIGNAL(clicked()),this,SLOT(vBtnPage1Process()));connect(ui->pbtnJump2,SIGNAL(clicked()),this,SLOT(vBtnPage2Process()));this->pTimer=new QTimer(this);connect(this->pTimer,SIGNAL(timeout()),this,SLOT(vTimerProcess()));this->pTimer->start(100);
}void threeWidget::vBtnPage1Process()
{this->slPage3Cnt++;emit vSingalPage1(this->slPage3Cnt);
}void threeWidget::vBtnPage2Process()
{emit vSingalPage2();
}void threeWidget::vTimerProcess()
{this->slLcdCnt++;if(this->slLcdCnt>99){this->slLcdCnt=0;}ui->lcdNumber->display(this->slLcdCnt);
}

C++,QT多个窗体切换,widget 多个页面切换跳转显示相关推荐

  1. 浏览器窗口切换(从一个页面切换到另一个页面并且不刷新)

    从一个页面跳转到另一个浏览器打开过的页面(只有通过window.open 打开的同源页面才能相互切换) window.open("javascript:;", name); 第一项 ...

  2. QTabWidget——创建标签页的多页面切换

    QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); / ...

  3. QT Desinger设计窗体应用程序框架

    目录 目录 前言 系统软件 QT Designer Using QT Designer Open QTDesigner Tool Widget Box QT Designer的布局 属性栏 示例 i ...

  4. Qt编写安防视频监控系统1-通道切换

    一.前言 通道切换在视频监控系统中是最基础的必备功能,一般都会提供1通道+4通道+6通道+8通道+9通道+16通道这几个通道切换,可能做得比较好的还会提供24通道+32通道的,这个可能对电脑的配置就有 ...

  5. QT实现窗口置顶、置顶状态切换、多窗口置顶优先关系

    我们使用QT进行界面开发时,可能会遇到需要将窗口置顶的情况.最常见的就是,需要制作一个悬浮工具栏,悬浮菜单,甚至是悬浮的画板.这就意味这我们需要将这个窗口置顶于"系统"以及我们自己 ...

  6. Qt中不规则窗体和部件的实现

    Qt中不规则窗体和部件的实现 描述:a.png 窗口背景图 图片: 描述:mask.png 窗口掩码图 图片: 描述:toolbutton.png 按钮背景图 图片: 描述:toolbutton_ma ...

  7. 【转】QT实现不规则窗体

    看到好文章,收藏一下: 看到网上有很多不规则窗体的实现,效果很酷.于是使用QT也实现了一个,QT的不规则窗体实现非常简单,只需要设置一个mask(遮掩)图片,这个图片的格式可以使用png或bmp格式, ...

  8. Qt无边框窗体(Windows)

    Qt无边框窗体Windows篇 去掉标题栏和边框 实现拖拽功能 还原窗体功能 注意点 我们可以做的更好 添加阴影 亚克力面板效果 结语 去掉标题栏和边框 首先第一步我们要通过设置系统绘制的边框消失 s ...

  9. Qt添加Halcon窗体Demo(以及Halcon简单的灰化效果)

    Qt调用Halcon13.0机器视觉算法包 Qt:5.6.1 MSVC2013 32bit Halcon版本:13.0(注意,这里最好是正版,或者已经破译的版本,否则会引起很多意料之外的问题) 1.在 ...

最新文章

  1. AI化身监工,上班还能摸鱼吗?
  2. P3398仓鼠(LCA)
  3. Redis事务,ACID性质,但是Redis不支持事务回滚
  4. 如何清理镜子上的水渍:亲测有效
  5. 图模型概述:三种分布(联合、条件、边缘分布)
  6. 程序员修神之路--它可能是分布式系统中最重要的枢纽
  7. Linux logo和屏幕光标
  8. 2020快手用户及营销报告
  9. (转)使用CGLIB实现AOP功能与AOP概念解释
  10. OpenSelfSup: Open-MMLab自监督表征学习代码库
  11. PHP+MySql+PDO实现简单登录、注册
  12. 【BZOJ1901】Zju2112 Dynamic Rankings 主席树+树状数组
  13. Ctrl + R 后,悲剧咯、、、、
  14. PageRank与社交网络模型评估
  15. SYNPROXY:廉价的抗 DoS 攻击方案
  16. 玩觅伊的女孩,都是一些什么样的人?
  17. 自用live2d制作
  18. AM5728核心板出厂测试笔记
  19. pandas数据合并与重塑(pd.concat篇)
  20. 华为手机隐藏的3大功能,现在才知道,怪不得别人手机这么好用

热门文章

  1. php文件包含读源码,CTF PHP文件包含--session
  2. ORACLE 复制表
  3. python 词表里的词不符合_一年级语文下册,第1~4单元生字笔顺组词表,家长:这也太全面了...
  4. revit服务器系统,revit云协同设置服务器
  5. c语言怎么打出花边图案,甄嬛舌尖各种版本苏牙咬人 连黄梅戏C语言都来了
  6. 什么样的人适合读博士
  7. SpringAop 流程源码阅读
  8. 手淘流量是什么意思?手淘搜索流量怎么增加?
  9. 京东成都研究所奋战618
  10. Arch Linux/其他 Linux 下给 Link2/LPC-Link2 调试器刷 CMSIS-DAP 和 J-Link 固件