0


QPushButton按钮控件常用信号,双击,单击等。

目录

前言

想要了解QT中的QPushButoon类必须先了解QT的大致继承关系,这样我们才能更好的实现或者了解QPushButton按钮控件,大致继承关系如下:
在这里插入图片描述
我们可以看到QpushButton继承自—>QAbstractButton继承自---->QWidget。
这样我们就可以查找我们想要实现的功能相关信息。

单击信号:checked。

connect(ui->ok,&QPushButton::clicked,this,&mainWin::slot_clicked);

虽然我们实现了连接单击信号,但是我们发现在QT帮助文档中,QPushButton中是没有clicked这个信号的。其实是QAbstractButton中的信号。

双击信号:mouseDoubleClickEvent。

通过上文,我们知道单击信号是继承QAbstractButton,那么双击信号是继承QWidget中,而且有很多都是虚函数,需要使用者自我实现。下面就是双击信号实现过程

添加自定义类,继承自QPushButton。

.h代码

#ifndefMYPUSHBUTTON_H#defineMYPUSHBUTTON_H#include<QPushButton>namespace Ui {classMyPushButton;}classMyPushButton:publicQPushButton{
    Q_OBJECT

public:explicitMyPushButton(QWidget *parent =nullptr);~MyPushButton();protected:///重写鼠标双击事件voidmouseDoubleClickEvent(QMouseEvent *event)override;private:
    Ui::MyPushButton *ui;};#endif// MYPUSHBUTTON_H

重写mouseDoubleClickEvent函数。

.cpp代码

#include"MyPushButton.h"#include"ui_MyPushButton.h"#include<QMouseEvent>#include<QMessageBox>MyPushButton::MyPushButton(QWidget *parent):QPushButton(parent),ui(new Ui::MyPushButton){
    ui->setupUi(this);}MyPushButton::~MyPushButton(){delete ui;}voidmouseDoubleClickEvent(QMouseEvent *event){if(event->buttons()== Qt::LeftButton){QMessageBox::information(NULL,"DoubleClick","double click", QMessageBox::Yes);}}

我们就实现了双击事件。

其实我们还有很多功能想要实现的话,就必须去QWidget中查找,下面我给大家列举常用的几个接口:
名称常用接口实现方式继承自何处鼠标按下mousePressEvent重写QWidget–––鼠标移动mouseMoveEvent重写QWidget–––鼠标释放mouseReleaseEvent重写QWidget–––鼠标移出leaveEvent重写QWidget–––鼠标移入enterEvent重写QWidget
那么其他的,自己去QWidget查看把。

标签: ui qt 开发语言

本文转载自: https://blog.csdn.net/weixin_40904682/article/details/130004089
版权归原作者 从程序员成功考公 所有, 如有侵权,请联系我们删除。

“QPushButton按钮控件常用信号,双击,单击等。”的评论:

还没有评论