按钮绑定的三种方式


第一种 使用绑定事件

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.然后自己实现这个方法就行了,其他控件就只需要按照这个方法来写就行了


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录