1. 程式人生 > >針對QT——“在程式檔案中(*ui,*cpp,*h)更改之後編譯執行的程式結果無法更新”——解決方案

針對QT——“在程式檔案中(*ui,*cpp,*h)更改之後編譯執行的程式結果無法更新”——解決方案

本篇文章主要介紹在QT中,對程式檔案(*ui,*cpp,*h)更改之後編譯執行的程式結果卻無法更新的解決方案。


問題描述

在設計QT的GUI使用者介面時,我們需要不斷對程式檔案進行修改以優化使用者體驗,因此需要更新程式的生成檔案。

實際經歷:筆者最近在一個專案中需要將QT的GUI程式打包釋出,因此要用到釋出版本的exe檔案。然而,對於GUI介面通常需要不斷美化和修改,所以經常需要用到更新後的exe檔案,但是很奇怪的是,修改後的程式一直都沒有更新,總是之前的執行結果。

原因分析及解決方案

古詞有云——對症下藥、有的放矢。

本人一貫的建議是:當我們遇到程式問題時,不要急於上網找答案,首先要做到就是分析自己的程式框架結構,按照程式結構逐步排查,整個走完一遍如果還有問題再上網查閱。因為程式問題受電腦本身環境影響,各不相同。盲目按照網上教程進行測試無異於盲人摸象,無法培養和提高自身解決問題的能力,希望大家可以有意識去鍛鍊下。


回到正題,這種程式無法更新的問題一般來源於一下幾個方面:

1.QT修改後的程式檔案沒有生成

這種情況是由於QT程式沒有重新構建導致。因為QT同樣是需要編譯,所以每次修改程式檔案後,都需要重新構建,QT中使用編譯的工具是qmake,所以這裡我們要搞清楚Qt中構建、執行、qmake的區別:

        qmake:根據實際環境建立專案檔案.pro   並且執行qmake生成適當的Makefile
        構建:構建是增量編譯,只編譯有變化部分
        重新構建:

是把所有部分都重新編譯
        執行: 有改動則根據已有的Makefile進行編譯,執行構建和重新構建時如果沒有Makefile,會根據.pro檔案等生成Makefile後再編譯

所以此種情況的解決方案是:清理專案—》執行qmake—》重新構建所有專案—》執行

 2.QT修改後的程式檔案生成了,只是路徑未知

對於第一種情況,想想大家都可以正確解決,但是恰好本人遇到的是第二種:在執行“清理專案—》執行qmake—》重新構建所有專案—》執行”後,依舊沒有得到更新後的exe檔案。

這種時候我們就需要不斷排除問題了,最終本人發現這種問題是因為專案的構建目錄未設定正確,因此,我們在執行程式時,必須清楚自己生成的檔案會在哪裡。解決方案如下:

專案——》構建和執行——》構建目錄,然後設定自己的路徑,去這裡尋找生成的檔案即可。


結果如下,修改後生成的exe檔案正確更新,完成了程式圖示的新增。


作者:Daniel
來源:CSDN 
版權宣告:本文為原創文章,轉載請附上博文連結!