0
点赞
收藏
分享

微信扫一扫

关于使用定时器类用按钮停止时遇到的问题(为什么QPushButton需要点击两次才响应?)

小a草 2022-01-26 阅读 25
为什么QPushButton需要点击两次才响应?

我在学习定时器类时发现了一个问题(不知是否?)。
问:当点击暂停1时,鼠标要双击,定时器才会停止,查看Qt助手对clicked明显不是这样说的
在这里插入图片描述
翻译:当按钮被激活时(即,当鼠标光标在按钮内时按下然后释放),当键入快捷键时,或当click()或animateClick()被调用时,这个信号被发出。 值得注意的是,如果调用setDown()、setChecked()或toggle(),则不会发出此信号。

理解不应该是鼠标点击一次吗?
ui
在这里插入图片描述

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //创建一个定时器的对象
    timer1 = new QTimer(this);
    timer2 = new QTimer(this);
    //对象开启
    timer1->start(500);
    timer2->start(1000);
    int num1=0;
    int num2=0;
    //当定时器开启之后就会发出一个timeout信号
    connect(timer1,&QTimer::timeout,[=]()mutable{
        ui->label->setText(QString::number(num1++));
    });

    connect(timer2,&QTimer::timeout,[=]()mutable{
        ui->label_2->setText(QString::number(num2++));
    });
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()//暂停1
{
    connect(ui->pushButton, &QPushButton::clicked,this,[=](){
        timer1->stop();//鼠标点击两下才停止  ???
    });
}

void Widget::on_pushButton_2_clicked()//继续1
{
    connect(ui->pushButton_2, &QPushButton::clicked,this,[=](){
        timer1->start(500);
    });
}

**附:**这是我在windows上运行Qt时遇到

**思考:**这和doubleClicked又有什么区别?
This signal is emitted when the button is interactively double clicked by the user.
当用户交互式地双击按钮时,就会发出这个信号。

现记录一下。

举报

相关推荐

0 条评论