4.标准信号与槽
发布日期:2022-03-30 18:18:22 浏览次数:39 分类:博客文章

本文共 1189 字,大约阅读时间需要 3 分钟。

  • connect
  • 如何找到信号发出者支持什么信号?
  • 自定义槽函数
  • 自定义信号

connect

connect(sender, &Sender::valueChanged,receiver, &Receiver::updateValue);

QPushButton cLose;    connect(&cLose,&QPushButton::clicked,this,&Widget::close);

注意:直接创建的对象要放入地址,指针类型则直接放入.

QPushButton * cLose;    cLose=new QPushButton("关闭",this);    connect(cLose,&QPushButton::clicked,this,&Widget::close);

cLose:信号发出者,此参数是一个指针.

&QPushButton::clicked:信号的发出者,内部的一个信号.格式:&+信号发出者类::+信号名字
this:信号接收者,此参数为指针.当前窗口,当我们发出一个点击信号,当前窗口就会捕捉到这个信号.
&Widget::close:widget类在文档中是不存在的,因为它是我们自己定义的一个类.若要查看它的信号应当在QWidget中.

如何找到信号发出者支持什么信号?

  1. F1进入索引.
  2. 找到Signals.
void clicked(bool checked = false)  //点一下void pressed()                      //按下void released()                     //松开鼠标void toggled(bool checked)

自定义槽函数

  1. 槽函数在QT5中可以是任意类成员函数,全局函数,静态函数,lambda表达式(隐式函数);
  2. 槽函数需要与信号相对应(返回值,参数);
  3. 信号没有返回值,槽函数返回值void;
  4. void x(int,double,QString);
    void c(int,double,QString);
  5. 槽函数参数是为了信号传过来的数据;
  6. 槽函数参数不能大于信号参数个数,可以少于;
void Widget::OpenSecWindow(void){    this->close();    Sec_W.show();}

在顶层窗口中申明并实现函数.

connect(B2,&QPushButton::clicked,this,&Widget::OpenSecWindow);

连接按钮和功能函数.

自定义信号

signals:

自定义信号,必须使用signals声名.
signals声名不需实现.
否则定义后必须实现.

  1. 可以有参数.
  2. 可以重载.
  3. 返回值为void.
  4. 发送信号emit+信号名.
    emit signals;

转载地址:https://www.cnblogs.com/cnleika/p/10536823.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:5.从零开始创建一个QT窗口按钮
下一篇:MapReduce

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月04日 22时57分42秒