以前用qtwediget的時候,好像是放在qlabel或者什么組件上面,把圖片的路徑放上去就可以直接加載,但我用QML創建界面的時候就遇到了問題,哦對,qtwedget用qpixmap組件顯示圖片,也有image。話說回來,QML顯示圖片用的是image來貼圖,但有個問題,常規顯示本地圖片或者網絡圖片前面加個filie:///或者網絡URL就行了,但我考慮到項目的封裝性,因為考慮到了有時候項目打包的話需要把資源文件也帶進去,就是qt的qrc文件,我image直接引用qrc文件下的圖片的url的時候會顯示圖片打不開,會報錯cannot open.....,qtwediget不會遇到這個問題,網上面的一些教程都是直接引用就成功了,我也很無語,后來看到一位up主叫執筆劃線的解決了,忠心感謝,下面我來講講解決辦法
首先我說說問題就是出在了CMake的配置上,我們創建了一個qrc文件以后,在cmake中qtcreater是自動在qt_add_qml_module加上了一句resource什么的,初看沒啥問題,就是把qrc文件加入到文件系統,但是,這樣做訪問不了圖片,為啥,我沒專門學過cmake,我不知道,有知道的可以說一下。我們要把這一句刪掉,在文件系統上面加上
qt_add_resources(RES source.qrc)
RES是我取的別名,這個你們想叫啥叫啥,source.qrc是我創建的資源文件
加好了以后在文件系統中加入sources? ?${RES}
qt_add_qml_module(appqmltestURI qmltestVERSION 1.0SOURCES ${RES}QML_FILESMain.qml)
改這兩處就可以正常訪問圖片了