我对Qt
相对较新。我在函数中有以下代码片段(在QObject
继承的用户定义类中):
QMessageBox msgBox;
msgBox.setText("Try clicking Ok button.");
int ret = msgBox.exec();
qDebug() << "Return Val:" << ret;
switch (ret)
{
case QMessageBox::Ok:
{
qDebug()<<"Ok button clicked";
break;
}
default:
{
qDebug()<<"Control Should Not Reach this log";
break;
}
}
运行此代码后, QMessageBox
会弹出Ok
按钮。我无法使用鼠标点击 Ok
按钮,虽然使用键盘按键我可以这样做。无论我使用键盘还是使用按钮Close
(使用键盘或鼠标)。我总是得到返回值1024
,这只是QMessageBox::Ok
。这就是为什么在日志中总是会出现“ Ok按钮点击”。
1024
作为返回值?QMessageBox
的{{1}}是否存在阻止鼠标点击的内容
按钮?答案 0 :(得分:1)
文档(针对Qt4)说
QMessageBox::QMessageBox ( QWidget * parent = 0 )
Constructs a message box with no text and no buttons.
即使显示它们,这里的按钮也可能出现故障。尝试使用其他构造函数,使用setStandardButtons()
或使用其中一种静态方法,例如QMessageBox::information()
,这在大多数情况下都是您需要的。
答案 1 :(得分:0)
我发现了问题。声明msgBox
时,未给出parent
。一旦我给了父母,它开始工作正常。虽然我不确定这只会影响Ok
按钮而不影响close
按钮。
感谢。