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

QT--day2(信号与槽,多界面跳转)

 第一个界面头文件:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QIcon>  //图标头文件
#include <QPushButton>  //按钮类头文件QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECT    //有关信号与槽的元对象public:Widget(QWidget *parent = nullptr);~Widget();signals:void my_signal();
public slots:void btn1_slot();//自定义槽函数private:Ui::Widget *ui;  //使用ui界面对应头文件中的命名空间中的类定义的指针QPushButton *btn1;
};#endif // WIDGET_H

第一个界面源文件:

#include "widget.h"       //引入自定义头文件
#include "ui_widget.h"   //引入ui界面的头文件Widget::Widget(QWidget *parent): QWidget(parent)        //调用父类的有参构造, ui(new Ui::Widget)     //构造出ui界面拖拽的成员,并且将地址赋值给ui指针
{ui->setupUi(this);    //周用设置界面函数,给ui界面上的组件申请空间//设置窗口大小this->resize(600,400);//设置窗口标题this->setWindowTitle("聊天室");//设置窗口图标this->setWindowIcon(QIcon("E:\\嵌入式\\QT\\图标库\\icon_h8db9qyxft\\QQ.png"));//添加按钮btn1=new QPushButton("登录",this);btn1->resize(100,50);btn1->move(400,300);btn1->setIcon(QIcon("E:\\photo\\9.jpg"));//将按钮1的clicked信号连接到自定义的信号中connect(btn1,&QPushButton::clicked,this,&Widget::btn1_slot);
}Widget::~Widget()
{delete ui;
}void Widget::btn1_slot()
{//跳转到第二个界面emit my_signal();//将自身界面关闭this->close();
}

第二个界面头文件:

#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class second;
}class second : public QWidget
{Q_OBJECTpublic:explicit second(QWidget *parent = nullptr);~second();public slots:void jump_slot();private:Ui::second *ui;
};#endif // SECOND_H

第二个界面源文件:

#include "second.h"
#include "ui_second.h"second::second(QWidget *parent) :QWidget(parent),ui(new Ui::second)
{ui->setupUi(this);}second::~second()
{delete ui;
}void second::jump_slot()
{this->show();
}

测试文件:

#include "widget.h"
#include "second.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();second s;QObject::connect(&w,&Widget::my_signal,&s,&second::jump_slot);return a.exec();
}

效果:

 

 

http://www.lryc.cn/news/101271.html

相关文章:

  • 热备份路由协议原理
  • 模拟实现定时器
  • TCP/IP的分包粘包
  • 盘点:查快递教程
  • TransGPT 开源交通大模型开源
  • gitignore文件使用方法(gitignore教程)(git status --ignored)(git check-ignore -v <file>)
  • mybatis拼接sql导致的oom报错 GC报错
  • 如何通俗理解扩散模型?
  • 【C#】并行编程实战:并行编程中的模式
  • Apache Kafka 入门教程
  • python皮卡丘编程代码教程,用python打印皮卡丘
  • shell脚本:数据库的分库分表
  • AtCoder Beginner Contest 312(A~D)
  • SQL中Partition的相关用法
  • 微服务——Docker
  • 测试|测试用例方法篇
  • 负载均衡的策略有哪些? 负载均衡的三种方式?
  • 二十三章:抗对抗性操纵的弱监督和半监督语义分割的属性解释
  • curator实现的zookeeper可重入锁
  • 抽象工厂模式——产品族的创建
  • 【C语言初阶篇】自定义类型结构体我不允许还有人不会!
  • 重大更新|Sui主网即将上线流动性质押,助力资产再流通
  • day3 驱动开发 c语言编程
  • 【字节跳动青训营】后端笔记整理-3 | Go语言工程实践之测试
  • 【Android】Recyclerview的缓存复用
  • 机器学习:混合高斯聚类GMM(求聚类标签)+PCA降维(3维降2维)习题
  • libuv库学习笔记-processes
  • c++ 给无名形参提供默认值
  • NO1.使用命令行创建Maven工程
  • 深度学习入门(一):神经网络基础