首页 > 其他分享 >qt信号和槽

qt信号和槽

时间:2022-10-20 02:11:21浏览次数:50  
标签:qt parent 信号 Student myWidget include public

按钮->点击->窗口->关闭窗口

connect(信号的发送者,发送具体信号,信号的接收者,信号的处理);

信号处理函数称为槽

信号槽的优点,松散耦合,信号发送端和接收端本身是没有关联的,通过connect连接将两端耦合在一起

//点击按钮,关闭当前窗口
connect(myBtn, &QPushButton::clicked, this, &QWidget::close);

自定义信号和槽

teacher.h

#ifndef TEACHER_H
#define TEACHER_H

#include <QObject>

class Teacher : public QObject
{
    Q_OBJECT
public:
    explicit Teacher(QObject *parent = nullptr);

    //自定义信号写到signals下
    //返回值类型为void,只需要声明,不需要实现
    //可以有参数,可以重载
signals:
    void hungry();

};

#endif // TEACHER_H

student.h

#ifndef STUDENT_H
#define STUDENT_H

#include <QObject>

class Student : public QObject
{
    Q_OBJECT
public:
    explicit Student(QObject *parent = nullptr);
    //可以写到public下
    //返回值类型为void,需要声明,也需要实现
    //可以有参数,也可以重载
    void please();

signals:

};

#endif // STUDENT_H

student.cpp

#include "student.h"
#include <iostream>
Student::Student(QObject *parent) : QObject(parent)
{

}
void Student::please()
{
    std::cout << "please teacher eat dinner" << std::endl;
}

mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>
#include "teacher.h"
#include "student.h"
class myWidget : public QWidget
{
    Q_OBJECT

public:
    myWidget(QWidget *parent = nullptr);

    Teacher *t = new Teacher(this);
    Student *s = new Student(this);


    ~myWidget();
};
#endif // MYWIDGET_H

mywidegt.cpp

#include "mywidget.h"

myWidget::myWidget(QWidget *parent)
    : QWidget(parent)
{
    connect(this->t, &Teacher::hungry, this->s, &Student::please); //建立信号与槽的连接
    emit(this->t->hungry()); //发射信号

}

myWidget::~myWidget()
{
}

 

标签:qt,parent,信号,Student,myWidget,include,public
From: https://www.cnblogs.com/WTSRUVF/p/16808368.html

相关文章

  • QTableWidget里加单选框QRadioButton
    拿到程序的美工图,某个界面,列表第一列的序号变成了单选框,选择这个单选这一行都是选中状态。我原来的界面就是行选中状态,现在就变序号为单选框,且将这个单选框融入行选择里,选......
  • Qt -- QDockWidget嵌套布局详解-实现Visual Studio布局
    概述许多工程软件,如QtCreator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口。Qt的嵌套布局由QDockWidget完成,用QtCreator拖界面得到的dock布置形......
  • Qt | QRectF的使用以及应用场景
    1简介官方文档QRectFQRectF中保存(x,y,width,height),常常用于记录图形项在局部坐标系中的位置以及图形项的宽高:QRectFrect=this->rect();2位置与宽高的设定与......
  • 基于QT实现的机场的起飞和着陆管理模拟系统
    基于QT实现的机场的起飞和着陆管理模拟系统机场的起飞和着陆管理模拟【题目描述】设飞机场有四条跑道,四条都可以用于起飞,其中三条用于正常着陆,第四条用于紧急着陆。要求......
  • Qt Windows高清DPI自适应分辨率缩放
    windows实际分辨率,1920x1080显示窗体w大小:800x600100缩放率:关闭Qt::AA_EnableHighDpiScalingui->pushButton->size()QSize(114,30)"\\\\.\\DISPLAY1"devicePixelRatio......
  • 【Python】pyqt6入门到入土系列,非常详细...
    最近真的是运气不好,国庆前一天,隔壁小区有人中招了,结果国庆出不了门,好不容易国庆结束了,准备上班,结果小区又有个叼毛中招了,搞得我直接国庆放了半个月,还只能在家过,没事干只能......
  • Python图形化界面 QT
    问题介绍安装准备Python图形界面开发的几种方案前面的教程中,我们程序的用户交互界面都是命令行终端窗口。程序的用户交互界面,英文称之为UI(userinterface)当一个......
  • 基于ads1292的心率呼吸信号检测解决方案开发阶段总结
    前记 在医疗可穿戴领域,ads1292是一个无法绕过去的存在。今年几个项目产品都和这个芯片有关系。从不了解到熟悉,算是踩了不少坑吧。对每次的项目进行复盘,是我这些年养成的......
  • 深度学习与统计力学(IV) :深层网络的信号传播和初始化
    谷歌和斯坦福最新合作综述报告,发表在物理学的顶级期刊“凝聚态物理年鉴”(AnnualReviewofCondensedMatterPhysics)。作者YasamanBahri,JonathanKadmon,JeffreyPenni......
  • 基于QT和C++实现的翻金币游戏
    基于QT和C++的翻金币游戏声明:QT翻金币项目可以说是每个新学QT的同学都会去写的一个项目,网上的源码也很多,我也是最近刚开始学QT,所以也参考了很多前辈的代码自己重新敲了一......