2016-02-14 135 views
0

简短问题:是否有Qt方式来确定窗口系统是否显示标题?例如:检查窗口标题是否可见

窗口 - 随着窗口标题:

Windows window

OSX - 无窗口标题:

OsX Window

我使用相同的代码来生成这些箱子:

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

由于你c一看,"Information"只会显示在窗口上 - 我想知道的是如何确定窗口系统是否可以显示窗口标题。

我在关于它的文档中找不到任何东西,但也许它是隐藏的,例如,在本机界面?

+0

“显示标题”?那是什么意思? – peppe

+0

如果窗口具有'WS_CAPTION'风格并且'WM_GETTEXT'返回的字符串有一个或多个字符,那么显示“窗口标题”的机会真的很大。 –

+0

为什么它会在Mac上返回false? Mac上的Windows可以在其标题栏中显示文本。 –

回答

1

如果你有兴趣,这里是如何在Mac上的QMessageBox中显示标题。

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我更新了,如何在运行时检查系统。你可以选择如何处理这个宏。 –