-1

QMessageBox我正在查看一些 Qt 代码,发现程序检查是否QAPPLICATION_H已定义,而不仅仅是 using 。如果不是,那么它使用一些默认的系统消息框。这是它的样子:

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 盒子看起来更糟。

4

1 回答 1

0

Qt 是跨平台的 QMessageBox 将在您编译代码的任何平台上可用。我不知道为什么在列出的代码中定义和调用 MessageBoxA,也许开发人员希望能够显示更多的 windows 外观消息框,以防目标平台是 windows。

于 2016-01-09T10:39:43.103 回答