2013年3月22日 星期五

[QT] 執行檔上的圖示更改(icon change)

QT Creator的做法

首先準備好一個icon檔 可用Irfan view製作
接下來點選project->Add new->general 產生一個.txt檔
將其檔名改為xxx.rc
且內容為

IDI_ICON1 ICON DISCARDABLE "xxx.ico"



接著回到.pro檔 看到下面有一行


OTHER_FILES += \
    xxx.rc

接著自行增加

RC_FILE += \
 icon.rc


重新build之後就好了
補上官網資料:  http://qt-project.org/doc/qt-4.8/appicon.html

p.s如果使用visual studio創建QT程式的時候
他並不會產生.pro檔 我找到的解決方式就是輸入qmake -project讓他產生.pro檔

我之前一直覺得visual studio加上QT的plugin在裡面創建檔案的專案結構不太一樣 原來是少了.pro檔 還有他沒有dialog的模板 打開都是QMainwindow 這點可能是我不太會用

3 則留言:

  1. 恩 夜風的作法是標準正確技巧 0.0b

    其中 DISCARDABLE 是資源檔語言的關鍵字
    你用資源檔專用的編輯器這個字會變成藍色

    這個關鍵字會令 該資源沒有在程式內用到的話
    可以從記憶體中卸除,你沒有令這個關鍵字的話
    你在 Win32 程式內呼叫卸除資源的 API 從
    記憶體卸除這個 ICON 的話 就會導致卸除失敗

    RC 就是 微軟的 "資源描述檔" RC Script

    古老寫 Win32 程式或是要手動微調
    Dialog Template 內的控制項座標時
    就要手動修改 RC Script

    RC.exe 可以把 *.RC 編譯成 *.RES

    link 產生 exe 的時候除了 obj 也要一並連結 res

    比較麻煩的是因為 QT 可以跨平台 RC 僅能在微軟的
    平台 Work,所以 QT 系統可以吃的資源檔又有分兩種
    一種直接取用該平台格式的 資源檔格式
    一種是 QT 系統自己創造的 資源檔格式 這種與平台無關


    這隱含了使用 QT 資源檔程式編譯時間會稍微拉長
    QT 系統會呼叫一些小工具進行資源檔格式轉換

    我覺得 QT 在資源檔方面設計得有點不好懂
    因為有些 QT 系統自己管理的 Widget 卻又
    可以直接取用 QT 資源檔,這種資源檔就又跟
    微軟的資源檔無關,像 QT 系統自己的 QToolbar Widget
    也就是說 假如你用到了某些特殊的 Widget
    就會變成 這兩種資源檔都要

    像執行檔的 icon 就是與平台有關這個是 OS 決定
    QT遇到這種沒辦法跨平台的就會呼叫系統自己專屬
    格式的資源檔。

    一些關於微軟的資源檔參考資料
    Resource-Definition Statements
    http://msdn.microsoft.com/zh-tw/library/windows/desktop/aa381043(v=vs.85).aspx

    About Resource Files
    http://msdn.microsoft.com/zh-tw/library/windows/desktop/aa381043(v=vs.85).aspx

    回覆刪除
  2. paper回覆還剩 1/3 ... 還得再衝一衝阿 /皿\.

    回覆刪除
  3. 加油 這篇回覆完 應該就剩下輪椅了吧

    回覆刪除