第一次单击时未单击QPushButton

时间:2016-08-25 16:51:18

标签: qt signals-slots qpushbutton

我有Qt 5.6,我正在使用按钮的按下信号,然后显示一个对话框。遗憾的是,第一次没有点击对话框的按钮,但第二次点击是完美的。 您可以在QMessageBox::information广告位中显示on_someButton_pressed来测试这种情况。

1 个答案:

答案 0 :(得分:0)

抱歉,无法复制:适合我。 应该编写这个测试用例。对它进行编码比编写问题要少得多。

#include <QtWidgets>
int main(int argc, char ** argv) {
   QApplication app{argc, argv};
   QPushButton button{"Press me"};
   button.setMinimumSize(300, 150);
   button.setFont(QFont{"Helvetica", 20});
   QObject::connect(&button, &QPushButton::pressed, [&]{
       QMessageBox::information(&button, "Yes!", "You pressed me.");
   });
   button.show();
   app.exec();
}

另外,您应该使用clicked()信号,而不是pressed()信号。如果你使用后者,可用性会受到影响。