第一种 使用绑定事件
1.先自己写一个插槽事件(这个事件自己在cpp里面实现就行了)
// 这里我们定义了一个slots 插槽,这个用于UI界面与程序进行交互
private slots:
// 这个是按钮点击事件的一种写法
void startService();
2.和ui进行绑定(第一个是按钮,最后那个solt就是我们自己定义的插槽了)
// 绑定按钮点击事件(第一种方法)
connect(ui->startService,SIGNAL(clicked(bool)),this,SLOT(startService()));
第二种 事件过滤函数
1.第一一个事件过滤函数(这个其实就相当于重写了)
protected:
bool eventFilter(QObject *target, QEvent *e) override;
2.我们的实现方法如下
// 事件过滤,这里就相当于过滤所有的按钮点击事件
bool Chat::eventFilter(QObject *target, QEvent *e) {
// 如果过滤的是我们的发送按钮
if(target == ui->sendData)
{
// 这里我们判断一下点击的事件类型
if(e->type() == QEvent::MouseButtonPress){
// 这我们就可以进行处理了
}
}
return QObject::eventFilter(target, e);
}
3.绑定一下监听事件
// 绑定按钮点击事件(第二种方法,这里我们统一处理)
ui->sendData->installEventFilter(this);
第三种 按照规定写
1.同样在插槽里面定义
// 这里我们定义了一个slots 插槽,这个用于UI界面与程序进行交互
private slots:
// 按钮点击的第三种方法 通常以 on_控件名字_clicked来表示,这里就是我们之前设置的一个按钮的点击事件
void on_clientButton_clicked();
2.然后自己实现这个方法就行了,其他控件就只需要按照这个方法来写就行了