Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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,为了设计定制按钮,我添加了一个图片源(1): #包括“mybutton.h” #包括 #包括 #包括 #包括 MyButton::MyButton(QWidget*parent):QPushButton(parent){ QPixmap pixmap(“/home/myCode/MyButton/MyButton/graphics/myPicture.png”);/(1)图片源 奇康钮扣; 按钮图标addPixmap(pixmap); 此->设置图标(按钮图标); 这->setIconSize(

为了设计定制按钮,我添加了一个图片源(1):

#包括“mybutton.h”
#包括
#包括
#包括
#包括
MyButton::MyButton(QWidget*parent):QPushButton(parent){
QPixmap pixmap(“/home/myCode/MyButton/MyButton/graphics/myPicture.png”);/(1)图片源
奇康钮扣;
按钮图标addPixmap(pixmap);
此->设置图标(按钮图标);
这->setIconSize(pixmap.rect().size());
}

当然,有时图片的本地路径会发生变化。
所以我想在编译时告诉Qt类似这样的内容:文件的路径是workspacefolder/graphics/myPicture.png 与VS代码一样,您可以配置生成任务(tasks.json)以使用g++进行编译,并使用变量${workspaceFolder}进行引用


我尝试使用QDir类的函数,但那个函数只在调试时返回,而不是在编译时返回


qDebug()Qt资源系统是您所需要的,然后图像将“滚动”到可执行文件中。

就像您提到的添加资源文件一样

  • 添加新文件:Qt->Qt资源文件(Resource.qrc)
  • 项目树中添加了“资源”-文件夹
  • 打开文件夹
  • 右键单击resource.qrc
  • 添加前缀/
  • 将图像文件添加到位于图形文件夹中的前缀
  • 右键单击对象并复制路径
  • 在需要的地方添加副本作为资源

  • 在我上面提到的代码结果中,答案如下所示:

    QPixmap pixmap(“:/graphics/myPicture.png”);
    

    Qt自动将资源文件添加到.pro文件中 我想这就是编译器的链接

    RESOURCES += \
        resource.qrc
    


    我已经测试过移动项目文件夹并重命名它。图像资源正在工作。

    您可能需要从QMake或CMake脚本中传入该文件。可能的解决方案如果您有c++20:Qt,您还可以将此png文件放入资源中,并在代码中使用。