【问题标题】:Check if Window-Title is visible检查 Window-Title 是否可见
【发布时间】:2016-02-14 17:36:31
【问题描述】:

小问题:是否有一种 Qt 方式来确定窗口系统是否显示标题?示例:

Windows - 带有窗口标题:

OsX - 没有窗口标题:

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

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

如您所见,"Information" 只会显示在窗口上——我想知道的是如何确定窗口系统是否可以显示窗口标题。

我在文档中找不到任何关于它的内容,但它可能隐藏在某个地方,例如在原生界面中?

【问题讨论】:

  • “显示标题”?这是什么意思?
  • 如果窗口具有WS_CAPTION 样式并且WM_GETTEXT 返回的字符串包含一个或多个字符,则很有可能正在显示“窗口标题”。
  • 为什么它会在 Mac 上返回 false? Mac 上的 Windows 可以并且确实在其标题栏中包含文本。

标签: c++ qt window qwidget


【解决方案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

【讨论】:

  • 感谢您的信息!但我不想强制显示它,我只想知道它是否可见。 Windows/OsX 只是一个例子。
  • @Felix 我更新了,如何在运行时检查系统。您可以选择如何使用此宏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 2015-02-21
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多