2016-02-14 2 views
0

Короткий вопрос: Есть ли способ Qt, чтобы узнать, действительно ли система окон показывает названия или нет? Пример:Проверьте, нет ли окна-заголовка

Окно - с заголовками окон:

Windows window

OSX - Нет заголовок окна:

OsX Window

Я использовал тот же код для создания этих коробок:

QMessageBox::information(NULL, "Information", "This is an example dialog"); 

Как вы c a see, "Information" будет отображаться только в окнах - я хочу знать, как определить, может ли оконная система отображать заголовки окон или нет.

Я ничего не нашел в документации по этому поводу, но, возможно, это где-то скрытое, например. в собственном интерфейсе?

+0

"Показывать названия"? Что это значит? – peppe

+0

, если окно имеет стиль 'WS_CAPTION', а строка, возвращаемая' WM_GETTEXT', имеет один или несколько символов, есть действительно хорошая вероятность появления «заголовка окна». –

+0

Зачем ему возвращать false на Mac? Windows на Mac может и имеет текст в заголовках. –

ответ

1

Если вам интересно, вот как будет отображаться название вашего QMessageBox на Mac.

QMessageBox msgBox("", "This is an example dialog", QMessageBox::Information, 0, 0, 0, nullptr, Qt::WindowTitleHint | Qt::WindowSystemMenuHint); 
msgBox.QDialog::setWindowTitle("Information"); 
msgBox.exec(); 

Вы можете проверить систему с помощью QSysInfo. QSysInfo предоставляет информацию о времени выполнения системы. Подробнее вы можете прочитать: QSysInfo. Вот пример, где вы обнаруживаете системы IOS и используете макросы Q_WS_*.

#include <QSysInfo> 
#ifdef Q_WS_MAC 
switch(QSysInfo::MacintoshVersion()) 
{ 
    case QSysInfo::MV_IOS: return "IOS";//all IOS versions 
    default: return "Windows"; 
} 
#endif 
+0

Спасибо за информацию! Но я не хочу показывать это, я просто хочу знать, видно ли это или нет. Windows/OsX - всего лишь пример. – Felix

+0

@Felix Я обновляю, как вы можете проверить систему во время выполнения. Вы можете выбрать, что делать с этим макросом. –

Смежные вопросы