如何设置 QMainWindow 的 Windows 任务栏标题?
Posted
技术标签:
【中文标题】如何设置 QMainWindow 的 Windows 任务栏标题?【英文标题】:How to set Windows taskbar title of a QMainWindow? 【发布时间】: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 默认有图标?
【参考方案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 让我在死胡同里跑了好几个小时。以上是关于如何设置 QMainWindow 的 Windows 任务栏标题?的主要内容,如果未能解决你的问题,请参考以下文章
如何使背景PNG图像Alpha通道在QMainWindow中显示为透明
如何在不影响 QDockWidget 的情况下更改 QMainWindow 分隔符的宽度