为什么QPushButton需要点击两次才响应?
我在学习定时器类时发现了一个问题(不知是否?)。
问:当点击暂停1时,鼠标要双击,定时器才会停止,查看Qt助手对clicked明显不是这样说的
翻译:当按钮被激活时(即,当鼠标光标在按钮内时按下然后释放),当键入快捷键时,或当click()或animateClick()被调用时,这个信号被发出。 值得注意的是,如果调用setDown()、setChecked()或toggle(),则不会发出此信号。
理解:不应该是鼠标点击一次吗?
#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.
当用户交互式地双击按钮时,就会发出这个信号。
现记录一下。