Qt学习 您所在的位置:网站首页 信号和槽的用法和区别图片大全 Qt学习

Qt学习

2024-07-11 21:53| 来源: 网络整理| 查看: 265

程序的响应在qt中是通过信号与槽机制实现的。

两个基本概念

信号(signal):特定情况下被发射的一种通告;(例如:按钮被按下,光标移动,文本被编辑等等)

槽(slot):对信号作出相应的函数,也叫槽函数。

下面以按钮为例,介绍几种信号与槽的方式的实现。

1.右击-转到槽

在ui设计界面右击按钮,选择转到槽,如果选择click(),则表示新建了一个按下该按钮的槽函数,qt会自动生成一个空的函数体,只需要在函数体里写代码即可。

private slots: void on_create_maze_button_clicked(); void on_find_path_button_clicked();

槽函数在.h文件中的声明需要放在slots:里面,并且拥有特定的名称。

2.使用connect函数关联

connect函数的作用是连接信号与槽,它的四个参数分别为

谁发出信号 发出什么信号 谁处理信号 怎么处理

信号和槽函数在参数里有两种写法:

1)

connect(ui->cmdEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButtonClicked()));

2)

connect(ui->cmdEdit,&QBushButton::clicked,this,&Widget::on_cancelButton_clicked);

3.直接使用lambda槽函数

有时函数语句很短,没必要再写一个函数体,可以用lambda函数的形式。

connect(ui->browseButton,&QPushButton::clicked,[this]() { QMessageBox::information(this,"info","clicked"); });

补充:Lambda表达式

[捕获参数] (参数表) -> 返回类型{函数体}

lambda表达式可以赋值给一个函数指针,且当返回类型很明确时,可以省略返回类型的声明。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有