标准信号槽
- 定义
- 使用
- 关于绑定的注意事项
定义
在Qt提供的很多标准类中都可以对用户触发的某些特定事件进行检测, 因此当用户做了这些操作之后, 事件被触发类的内部就会产生对应的信号, 这些信号都是Qt类内部自带的, 因此称之为标准信号。
在Qt的很多类内部为我了提供了很多功能函数,并且这些函数也可以作为触发的信号的处理动作,有这类特性的函数在Qt中称之为标准槽函数。
使用
功能实现: 点击窗口上的按钮, 关闭窗口
功能分析:
- 按钮: 信号发出者 -> QPushButton 类型
- 窗口: 信号的接收者和处理者 -> QWidget 类型
// 单击按钮发出的信号
[signal] void QAbstractButton::clicked(bool checked = false)
// 关闭窗口的槽函数
[slot] bool QWidget::close();
先找文档:
QPushButton
没有信号,找其父类:
查看Signals文档:
里面有点击函数:void clicked(bool checked = false)
在QMainwindow中,找槽函数
没有关闭的,在其父类中去找
bool close()
将信号和槽函数绑定:
connect(ui->deleteWindow,&QPushButton::clicked,this,&MainWindow::close);
关于绑定的注意事项
connect()函数只能在QObject类和QObject类的派生类中使用,在自己新建的类(基类不是QObject类和QObject类的派生类)中,使用connect()函数是无效的。
widget,mainwindow,dialog都是继承QObject类,所以可以直接调用connect()函数。