QMessageBox Совместимость

Я просматриваю некоторый код 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 коробка выглядит хуже.

1 ответ

Решение

Qt является кроссплатформенным QMessageBox будет доступен на любой платформе, с которой вы компилируете свой код. Я не знаю, почему в указанном коде это определение и вызов MessageBoxA, может быть, разработчик хотел иметь возможность отображать окно сообщений большего количества окон в случае, если целевой платформой являются окна.

Другие вопросы по тегам