首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Qt Creator 5 背景圖片運行時不顯示:Shadow Build 導致資源路徑失效

     編輯:程式設計綜合問答

現象

UI 設計器中通過樣式表 background-image: url(:/images/bg.png); 設置背景,預覽正常,但點擊運行後圖片消失。

根因

勾選 Shadow Build(構建目錄與源碼目錄分離)時,qrc 編譯生成的資源文件僅存在於構建目錄,運行時工作目錄若非構建目錄,資源系統找不到對應二進制資源。

解決方案

方案一:取消 Shadow Build(最快)

  1. 左側「項目」→「構建與運行」→「構建步驟」
  2. 取消勾選 Shadow build
  3. 重新構建,生成的可執行文件與資源在同一目錄

方案二:正確部署資源(規範)

  • 使用 windeployqt (Windows) / macdeployqt / linuxdeployqt 自動收集依賴與資源。
  • 或在 .pro 中添加 DESTDIR = $$OUT_PWD/../bin 統一輸出目錄,確保資源隨可執行文件分發。

方案三:代碼動態加載(不依賴 qrc)

QString imgPath = QCoreApplication::applicationDirPath() + "/images/bg.png";
this->setStyleSheet(QString("background-image: url(%1);").arg(imgPath));

需將圖片作為獨立文件隨程序發布。

最佳實踐

  • 開發期關閉 Shadow Build 便於調試;發布流程強制使用部署工具。
  • 資源文件命名避免中文、空格,防止編碼問題。
  • 大圖片建議外部文件 + QPixmapCache,減小可執行文件體積。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved