QMessageBox 兼容性
QMessageBox Compatibility
我正在查看一些 Qt 代码,发现程序不只是使用 QMessageBox
,而是检查是否定义了 QAPPLICATION_H
。如果不是,则它使用一些默认的系统消息框。这是它的样子:
bool Connect()
{
...
{
#ifdef QAPPLICATION_H
QMessageBox::critical(0,QString("Error!"),QString("Cannot Connect To PS3"));
#else
MessageBoxA(0,"Error!","Cannot Connect To PS3",MB_ICONINFORMATION);
#endif
return false;
}
else
{
...
#ifdef QAPPLICATION_H
QMessageBox::information(0,QString("Sucess!"),QString("Connected To PS3!"));
#else
MessageBoxA(0,"Sucess!", "Connected To PS3", MB_ICONINFORMATION);
#endif
return true;
}
}
基本上,我的问题是:QMessageBox
的兼容性如何?如果我发布了一个只使用QMessageBox
的程序,没有Qt的人会不会看不到消息弹出?我只是不想每次都在我自己的代码中检查这个,而且标准的非 Qt 框看起来更糟。
Qt 是跨平台 QMessageBox 将在您编译代码的任何平台上可用。我不知道为什么在列出的代码中是定义和调用 MessageBoxA,也许开发人员希望能够显示更多 windows 外观和感觉的消息框,以防目标平台是 windows.
我正在查看一些 Qt 代码,发现程序不只是使用 QMessageBox
,而是检查是否定义了 QAPPLICATION_H
。如果不是,则它使用一些默认的系统消息框。这是它的样子:
bool Connect()
{
...
{
#ifdef QAPPLICATION_H
QMessageBox::critical(0,QString("Error!"),QString("Cannot Connect To PS3"));
#else
MessageBoxA(0,"Error!","Cannot Connect To PS3",MB_ICONINFORMATION);
#endif
return false;
}
else
{
...
#ifdef QAPPLICATION_H
QMessageBox::information(0,QString("Sucess!"),QString("Connected To PS3!"));
#else
MessageBoxA(0,"Sucess!", "Connected To PS3", MB_ICONINFORMATION);
#endif
return true;
}
}
基本上,我的问题是:QMessageBox
的兼容性如何?如果我发布了一个只使用QMessageBox
的程序,没有Qt的人会不会看不到消息弹出?我只是不想每次都在我自己的代码中检查这个,而且标准的非 Qt 框看起来更糟。
Qt 是跨平台 QMessageBox 将在您编译代码的任何平台上可用。我不知道为什么在列出的代码中是定义和调用 MessageBoxA,也许开发人员希望能够显示更多 windows 外观和感觉的消息框,以防目标平台是 windows.