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

这篇具有很好参考价值的文章主要介绍了QPushButton按钮控件常用信号,双击,单击等。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

想要了解QT中的QPushButoon类必须先了解QT的大致继承关系,这样我们才能更好的实现或者了解QPushButton按钮控件,大致继承关系如下:
qpushbutton 双击,QT,ui,qt,开发语言
我们可以看到QpushButton继承自—>QAbstractButton继承自---->QWidget。
这样我们就可以查找我们想要实现的功能相关信息。

单击信号:checked。

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

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

双击信号:mouseDoubleClickEvent。

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

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

.h代码

#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H

#include <QPushButton>

namespace Ui {
class MyPushButton;
}

class MyPushButton : public QPushButton
{
    Q_OBJECT

public:
    explicit MyPushButton(QWidget *parent = nullptr);
    ~MyPushButton();
protected:
    ///重写鼠标双击事件
    void mouseDoubleClickEvent(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;
}

void mouseDoubleClickEvent(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查看把。文章来源地址https://www.toymoban.com/news/detail-570343.html

到了这里,关于QPushButton按钮控件常用信号,双击,单击等。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt 之 QPushButton,信号与槽机制

    当我们开发基于Qt框架的图形用户界面(GUI)应用程序时,经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButton是Qt中的标准按钮类,旨在简化按钮的创建和使用。 头文件 :#include QPushButton QPushButton 用于 接受用户点击事

    2024年02月12日
    浏览(35)
  • QT鼠标事件穿透,使QLabel、QPushbutton等上层控件可以被穿透

    几乎QT所有的标准控件都可以被穿透。方法除了我们自定义这个控件外,如: 之外,这些标准控件也可以通过配置setAttribute来实现鼠标事件穿透。如:

    2024年02月12日
    浏览(33)
  • qt学习:QListWidget控件+自定义条目项+双击删除+单击获取

    目录 图片 头函数 接口  显示案例 方法1 方法2 方法3   方法4  自定义 方法5  在方法4上实现 新建一个条目项类  itemwidget界面,配置ui界面,四个label, 实现listWidget的双击按钮事件 实现listWidget的单击按钮事件

    2024年01月25日
    浏览(42)
  • Qt 遍历多个按钮单击信号带参数,绑定到一个槽

    Qt5最新特性、最高效写法 只查找一级子控件 QList listBtn = ui-gbSel-findChildren(QString(),Qt::FindDirectChildrenOnly); for(int i=0;ilistBtn.count();++i)//++i比i++效率高,i++需要创建临时变量加1 { connect(listBtn[i],QPushButton::clicked,[=]{selCX(i);}); } QT5 写法,也是利用lambda表达式来实现 for(int i=0;igbSel-layout

    2024年01月18日
    浏览(35)
  • QT设置QPushButton样式

       

    2024年02月07日
    浏览(40)
  • qpushbutton 样式表

    2024年02月09日
    浏览(21)
  • 【PyQt】11-QTextEdit、QPushButton

    1、展示文本输入框的使用。 2、几种按键的使用方法。 3、单选按键时候,状态切换的槽函数怎么写。 文本显示 HTML显示 类型 QAstractButton-按钮控件的基类 它提供了一些通用的方法和信号,可以用于派生其他类型的按钮。一般情况下,你不会直接使用 QAbstractButton 类。 AToolBu

    2024年02月19日
    浏览(16)
  • QPushbutton的hover悬空状态失效

    此情况很有可能在设置了伪状态之后,又在程序执行顺序上后加了按钮的背景色样式,比如: 我们先给一个按钮加一个悬浮时的伪状态: 运行后的初始状态:  把鼠标放上去之后:  伪状态正常显示,没什么问题; 若我们在悬浮按钮伪状态之后再给按钮设置一个背景色:

    2024年02月11日
    浏览(19)
  • QT中对于QPushButton样式的调整

    前段时间在调软件的样式,学到了些新的东西,也碰到了些问题,这里做一下记录。 这篇博客主要实现的目标就如标题所示。 随便建一个项目,建一个资源包,导入一个资源图片。 这样我们想要的基本元素就有了,文字和按钮图标。 因为我下载的图片元素比较大,所以我这

    2024年04月28日
    浏览(25)
  • Qt通过QSS设置QPushButton的样式

    为了美化界面,有时候需要修改QPushButton的样式,让一个QPushButton上面既要显示图标,又要显示文字内容 起初我的做法是重写QPushButton,这样做可以实现,但是有几个问题 实现比较繁琐 每次使用UI编辑器设计界面的时候,对每一个QPushButton都要做一次提升 为了解决上面的问题

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包