QT FrameWrok和Visual Studio-图标冲突

问题描述 投票:0回答:2

介绍

我需要在我的应用程序窗口的左上角和任务栏(Windows 10)设置一个图标。但是,它仅部分工作 - 我可以设置.exe图标,但是仅此而已。在其他两个地方,我有默认图标。我正在与QT 5.9.7合作2017年Visual Studio。

到目前为止我测试了什么 我在我的.rc

文件中有以下行:

IDI_ICON1               ICON                    "favicon.ico"

让我拥有.exe图标。但这似乎不会影响其余的框架。我试图以这种方式设置应用程序图(
main.cpp
):

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.setWindowIcon(QIcon(":/favicon.ico"));
    // a.setWindowIcon also doesn't work.
    return a.exec();
}

甚至在内部
mainwindow.cpp
nover似乎被忽略了 - 它没有效果,也不会给我任何错误。我还试图包括

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setWindowIcon(QIcon(":/favicon.ico")); }

folllowing
this

教学 - 仍然没有运气。
问题

SO-如何正确设置其他两个图标 - 在Windows任务栏上以及在我的应用程序窗口的角落?

Edit:

添加

imageformats/qico.dll文件也无法解决问题。

在您不使用Creator / Qmake的情况下,您需要遵循QT文档的步骤:

如果您不使用Qmake,则必要的步骤是:首先,创建.rc 文件并在.rc文件上运行RC或Windres程序,然后链接您的 使用结果.RES文件的应用程序。

将为Windows Explorer / Taskbar创建图标。

左上图是通过将其添加到QRC文件并将其与资源编译器一起编译而创建的。需要通过调用应用程序为您的qapplication-instance来设置此图标。

c++ visual-studio qt icons
2个回答
1
投票
我找到了解决方案,所以我将在此处发布,如果其他人会遇到同样的问题:

首先 - 事物与

qrc

app.setWindowIcon(QIcon(":/favicon.ico"));

文件无关,甚至可以直接从App Directory加载图标。问题在于受支持的格式 - 出于某种原因,在Windows 10下,QT Framework中的
.rc

格式存在问题。理论上添加

.qrc

应该解决问题,但事实并非如此。解决方案是使用其他格式(在我的情况下),并将其直接放置在

.ico
文件所在的位置,而不是在任何子目录中。然后,您可以这样称呼:


1
投票

在线,如果您想以二进制形式编译图标,则可以尝试将其添加到资源中,但是格式仍然不得不使其起作用,因为这是问题的来源。图标的大小是正确调整的,因此在App窗口的一角和任务栏上看起来都不错 - 因此,在这种情况下,

.png

足够了。


也许我解决了这个问题。 .RC文件是在添加资源时手动创建的还是自动创建的?如果后者,则Visual Studio生成resource.h文件。在此文件中,您需要评论该行
#定义IDI_ICON1101

到了一切工作
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.