QT下信号与槽的关联方式

QT下信号与槽的关联方式

一、信号和槽是qt特有的功能,介绍信号与槽之前先介绍一下qt的机制特性。
1.强大的无缝对象通信机制信号和槽
2.可查询和可设计的对象属性系统
3.存在事件和事件过滤器
4.通过上下文进行国际化的字符串翻译机制
5.完善的定时器驱动,使得可以在一一个事件驱动的GUI中处理多个任务;
6.分层结构的、可查询的对象树,它使用一种很自然的方式来组织对象拥有权
7.守卫指针即QPoter,它在引用对象被销毁时自动将其设置为0;
8.动态的对象转换机制

下面是qt中信号与槽的七种关联方式:
1. 通过界面文件f3、f4进行信号和槽的关联。
在mainwindow上构建一个label,进入f4,点击label后拖动,窗口选择 clock(), 发送者为label,接收响应为mainwindow。
2. 通过signals&slots Editor实现
进入signals&slots Edito,对发送者,信号,接受者,槽分别进行选择
3. Qt4下的实现方式
connect(btn,SIGNAL(clicked()),this,SLOT(myclicked()));
4. 自动关联方式
进入界面文件,右击label后转到槽,进行响应属性的修改,
如:void MainWindow::on_pushButton_2_clicked()
{
ui->pushButton_2->setText(“Hello”);
}
5. 基于函数指针的实现方式
connect(btn,&QPushButton::clicked,this,&MainWindow::myclicked);
6. emit手动提交
函数定义之前先声明。
在头文件中声明函数mySignal:
Signals:
Void mySignal();
然后在.cpp定义mySignal()函数,进行使用。
void MainWindow::on_pushButton_2_clicked()
{
//改变Text
ui->pushButton_2->setText(“Hello”);
//手动提交
emit mySignal();
}
7. Lambda函数
语法定义:
捕捉列表 mutable ->return-type{函数体}

1.[   ]:捕捉列表,[ ]是lambda引出符,捕捉列表能够捕捉上下文的变量以供lambda函数使用。 
![捕捉列表的几种形式](https://img-blog.csdnimg.cn/20210415093309361.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NzI0MjQ3Mg==,size_16,color_FFFFFF,t_70#pic_center)
2.(  )参数列表。与普通函数的参数列表一致,如果不需要参数传递,则可以连通()一起省略。
3.mutable:mutable修饰符,默认情况下lambda函数是一个const函数,mutable可以取消其常量性。在使用该修饰符时,参数列表不可省略。
4.->return-type:返回类型。是用追踪返回类型形式声明函数的返回值类型。不需要返回值	时可以连同->一起省略。
5.{函数体}:函数体。与普通函数一阳,不过除了可以使用参数外,还可以使用所有捕获的变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值