第一种方式:自动连接(使用UI文件)
在使用Qt Designer时,可以通过命名约定自动连接信号和槽。当UI文件加载时,以on__ 命名的槽会自动连接到相应的信号。
具体做法:
然后右键按钮转到槽
点击ok,会跳转到代码中,同时会帮你定义好 on_pushButton_clicked()
方法
第二种方式:使用QObject::connect
最常用的方式,直接通过QObject::connect 函数连接信号和槽。
第二步需要在构造函数中初始化绑定
如果 ui-> 找不到 btncon ,则需要重新构建一下项目(ctrl + B)
头文件中,声明一下槽函数
最后在cpp文件中实现这个槽函数
第三种方式:使用C++11Lambda表达式
利用C++11引入的Lambda表达式进行信号与槽的连接。这种方式可以直接在连接点使用匿名函数,使代码更加简洁。
第四种方式:使用函数指针
Qt 5中引入,允许使用函数指针直接连接信号和槽,这种方式类型安全,且可以利用IDE的代码补全和错误检查。
这些方式各有优劣,选择哪种方式取决于具体的应用场景、代码风格以及个人偏好。
例如,直接使用 QObject::connect
是最通用的方式,而使用Lambda表达式可以在同一位置编写信号处理逻辑,提高代码的可读性。使用函数指针的方式则在编译时提供更好的类型检查。自动连接通常在使用Qt Designer设计UI时比较方便。
完整代码如下
widget.h