我用QtCreator13.0.0和Qt6.04创建了一个简单的项目。 对于我的应用程序,我使用 QtCreator 的“创建项目”选项,并选择“Qt 应用程序”->“Qt Widgets 应用程序”,将其命名为“mytest”。 在 QtCreator 创建的“mytest”文件夹中,我复制了一个 icon.png 文件,其中包含一个 48x48 像素的图像。 我将行 setWindowIcon(QIcon("./icon.png")); 添加到 MainWindow 源中:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle("mytitle");
setWindowIcon(QIcon("./icon.png"));
}
MainWindow::~MainWindow()
{
delete ui;
}
为了编译程序,我没有使用qtcreator,但我在“mytest”目录中打开了一个konsole,然后输入:
qmake6
因此:
make
最后:
./mytest
我希望在窗口图标中看到图像,就像我的所有程序中发生的那样。但这并没有发生:默认的 QtCreator 图标继续显示。
我尝试使用另一个 png 图像,然后尝试将图像插入到资源文件中并尝试从那里加载它们,但没有成功。
这种使用 setWindowIcon 的方法在过去一直有效,并且仍然包含在 Qt6 文档中。但这似乎不起作用。有想法吗?
编辑:我已经尝试在 setWindowIcon() 中加载图标图像:
EDIT2:我尝试将以下行添加到代码中:
QPixmap p=windowIcon().pixmap(48,48); // 48x48 is the size of my icon
p.save("/home/happy/aaa.png");
嗯,保存的文件“/home/felice/aaa.png”是我的图标的精确副本。所以setWindowIcon()函数实际上加载了图标,但没有显示。我很困惑。
看来问题是由 Wayland 产生的。 QT bugreports 中有一些关于此问题的类似 bug 报告。 请参阅这里
问候。