【问题标题】:How to set Windows taskbar title of a QMainWindow?如何设置 QMainWindow 的 Windows 任务栏标题?
【发布时间】:2013-10-16 16:34:41
【问题描述】:

出于好奇:我目前正在 Windows 7 上开发 Qt 应用程序。我想将窗口标题设置为在任务栏中显示。 setWindowTitle 不适用,因为我的 UI 是 QMainWindow,而不是 QWidget

我有一个带有标题的QString,但我无法设置它。我在 Qt Designer 中设置了 QMainWindow 标题,但这是静态的。我所达到的只是:

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
  // ....
  QApplication::setApplicationDisplayName(qAppTitle);
  parent->setWindowTitle(qAppTitle);
  // ...
}

这会将我任务栏中的窗口标题变成:

[来自 Qt Designer 的标题] - [qAppTitle 变量]

糟透了。

想法?

【问题讨论】:

  • 是什么让您认为 setWindowTitle 不适用?或者,更重要的是,QMainWindow 不是 QWidget?
  • 因为 1) QMainWindow 不是 QWidget 并且 2) setWindowTitle 没有可见效果。
  • 可以用setWindowTitle,你怎么用?请更新你的代码,把你的代码。
  • 已编辑初始发布。 :-)
  • 这行得通.. 除非你的意思是因为 W7 默认有图标?

标签: c++ qt


【解决方案1】:

QMainWindow有一个和QWidget一样的setWindowTitle(因为是一个),看这个问题:

How to set QMainWindow title

因此解决方案是:

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
  setWindowTitle("Hello world");
}

http://doc.qt.digia.com/4.7/qwidget.html#windowTitle-prop

还有

http://qt-project.org/doc/qt-5.0/qtwidgets/qmainwindow.html

"QMainWindow Class

The QMainWindow class provides a main application window. More...
#include <QMainWindow>
Inherits: QWidget."

【讨论】:

  • (更改后,请参阅之前的讨论:)谢谢!解决了。​​
  • setApplicationDisplayName 似乎是我系统上更改窗口装饰标题的唯一方法。 setWindowTitle 让我在死胡同里跑了好几个小时。
猜你喜欢
  • 2011-05-31
  • 2012-09-08
  • 1970-01-01
  • 2012-09-16
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多