我对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;
}
}
运行此代码后, 将弹出带有Ok
按钮的QMessageBox
。我无法使用鼠标单击Ok
按钮,尽管使用键盘键我可以做到这一点。无论我使用键盘还是使用按钮Close
(使用键盘或鼠标)。我总是得到返回值1024
这只不过是QMessageBox::Ok
.这就是为什么在日志中总是"单击确定按钮"的原因。
- 为什么我只得到
1024
作为返回值? - 是否有阻止鼠标单击
QMessageBox
Ok
按钮?
文档(对于 Qt4)说
QMessageBox::QMessageBox ( QWidget * parent = 0 )
Constructs a message box with no text and no buttons.
即使显示它们,这里的按钮也可能是无序的。尝试另一个构造函数,使用 setStandardButtons()
,或使用静态方法之一,如 QMessageBox::information()
,在大多数情况下,这就是您所需要的。
我发现了问题。在宣布msgBox
时,没有给出parent
。一旦我给了父母,它就开始正常工作。虽然我不确定这如何影响Ok
按钮而不是close
按钮。谢谢。