Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在主窗口上设置图标并使用QT执行操作_C++_Qt - Fatal编程技术网

C++ 如何在主窗口上设置图标并使用QT执行操作

C++ 如何在主窗口上设置图标并使用QT执行操作,c++,qt,C++,Qt,老实说,我不了解资源文件,也不知道如何才能完成我的工作,因为有人对我做了部分解释,我很困惑在哪里放置图标,以及如何在我的程序上显示图标 setWindowIcon(QIcon(":/images/icon.png")); 它不会显示,甚至不会显示错误。创建一个名为resources.qrc的资源文件: <!DOCTYPE RCC> <RCC version="1.0"> <qresource> <file>pat

老实说,我不了解资源文件,也不知道如何才能完成我的工作,因为有人对我做了部分解释,我很困惑在哪里放置图标,以及如何在我的程序上显示图标

setWindowIcon(QIcon(":/images/icon.png")); 

它不会显示,甚至不会显示错误。

创建一个名为
resources.qrc的资源文件:

<!DOCTYPE RCC>
<RCC version="1.0">
  <qresource>
    <file>path/to/icon.png</file>
  </qresource>
</RCC>
再次确保相对于包含项目文件的目录存在
path/to/resources.qrc

编译后,资源将嵌入到可执行文件中。可通过以下方式访问:

setWindowIcon(QIcon(":/path/to/icon.png"));
如果图标未出现,请尝试此操作或


另一种方法是使用。这将在桌面和“开始”菜单上以及
QMainWindow
s和
QDialogs

的左上角为您的应用程序设置应用程序图标。使用QtCreator的设计器窗口不是最简单的吗?在右下角可以找到3个选项卡-单击最右侧的选项卡,然后单击笔:

这将打开资源编辑器:

定义新的资源文件(在左窗格下方),然后添加“名称空间”(右窗格)并添加文件。您可以为它们设置别名,这样当您决定用其他图标替换图标时,只要别名保持不变,您只需切换路径即可。然后,您可以通过其别名引用资源,在需要时设置图标,例如:
setWindowIcon(QIcon(:/HurBudClientGUI/plug”)

另外,花点时间阅读以下内容:

祝你好运

有简单的解决方案:
只需转到主窗口的属性面板,然后将窗口图标属性更改为您喜欢的任何图标。

您正在使用Qt Creator吗?如果是这样的话,请检查您的.pro文件中是否有这样的行:RESOURCES+=sth.qrc。还要检查在.qrc文件中是否有前缀:“/images”。如果一切就绪,请尝试设置alias并按如下方式使用:QIcon(:/alias”)。想象一下,如果我将图标目录放在项目所在的同一目录中,将如何指定路径。目录图像可以这样做/images/icon.png?对于资源文件,我发现我可以通过文件直接将其添加到项目中来创建它|新建文件,但是如果将资源文件添加到当前项目中,我将如何指定资源文件?对于设置图标应用程序图标,我没有任何想法,因为我是Qt Creator的新手,使用带有
QIcon
的图像路径很重要,如下所示:
app.setWindowIcon(QIcon(:/image.png”)而不是像这样的图像URL:
app.setWindowIcon(QIcon(“qrc:/image.png”)请注意,图像路径中没有
qrc
setWindowIcon(QIcon(":/path/to/icon.png"));