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, может быть, разработчик хотел иметь возможность отображать окно сообщений большего количества окон в случае, если целевой платформой являются окна.