我有一个QT应用程序,目前添加了一个新的QPushButton。 我已正确连接按钮:
QObject::connect(ui->myButton, SIGNAL(clicked()), this, SLOT(SendResetEchoRequest()));
大多数时候,当我点击它时,它正在工作。但有时它没有注册我的点击。有时我需要多达5-10次点击才能使该功能触发一次,我不知道为什么。
为了确保这是按钮/点击的问题,我尝试使用按键UP上的功能,如下所示:
if(GetAsyncKeyState(VK_UP)){
SendResetEchoRequest();
}
这100%完美无缺。当我按下我的UP键时,它会触发该功能。
有人知道为什么有时它没有注册我的点击?
答案 0 :(得分:1)
我不确定它是否会有任何帮助,我想建议一个快速练习来检查。
您可以连接到按下和释放的信号,并在插槽例程中尝试将按钮文本设置为"Pressed"
,然后在按钮释放时它应该返回到"<your button text>"
QObject::connect(ui->myButton, SIGNAL(pressed()), this, SLOT(setbuttonPressed()));
QObject::connect(ui->myButton, SIGNAL(released()), this, SLOT(setbuttonReleased()));
setbuttonPressed() {
ui->myButton->setText("Pressed"); }
setbuttonReleased() {
ui->myButton->setText("My Button"); }
这样,当您看到偶然出现问题时,您可以检查QAbstractButton
或QPushButton
类是否发出任何信号。这只是我想要调试正在发生的事情,可能不是你问题的解决方案。