原因:
由于完全利用代碼繪制界面的效率比較低,而利用Qt Designer制作界面,效率雖然會提高,但是一些情況下界面的效果及互動不能很好的完整的支持,所以想利用Qt Designer繪制界面中的基礎控制元件和布局,而一些特殊的效果和互動在制作出的ui檔案所生成的ui_*.h檔案上,再通過代碼進行繪制實作。
問題:
由于ui檔案自動生成的ui_*.h檔案,會在下次編譯ui檔案的時候被覆寫,所以一旦有界面上的控制元件或布局的修改,編譯ui檔案后,之前所添加的代碼就會丟失掉,因此想請教一下,有什么好的作業方法,可以解決這個問題?
uj5u.com熱心網友回復:
搜“預生成事件 命令列”uj5u.com熱心網友回復:
ui.h一般不需要修改吧...好吧,我沒改過.uj5u.com熱心網友回復:
您好,我如何利用預生成事件的機制來解決qt designer中ui_*.h檔案被覆寫的這個問題呢?
uj5u.com熱心網友回復:
你在“預生成事件 命令列”中填寫你的批處理或自編代碼生成的exe程式,可以根據命令列引數拷貝或更名或合并舊ui_*.h檔案到新ui_*.h檔案中。
uj5u.com熱心網友回復:
不管你想做什么,都不應該去改ui_*.h,因為它是根據ui檔案自動生成的。例如你有MainWindow的設計類, 會有3個檔案MainWindow.h MainWindow.cpp MainWindow.ui
如果你想用代碼改寫什么,應該去MainWindow.cpp
uj5u.com熱心網友回復:
多謝各位的意見,是我對qt designer作業流程不熟悉的原因才導致問題的出現,現在已經熟悉了它的作業流程及使用方法,這個問題是不存在的。謝謝大家uj5u.com熱心網友回復:
你是怎么解決的,能告訴我一下嗎 ? 我也遇到了同樣的問題,但是不知道如何解決uj5u.com熱心網友回復:
樓主,你好。可以使用繼承的方法,避免被覆寫的問題。
基礎UI通過繪制ui檔案實作。自定義的方法以及個性需求,通過繼承實作。
樓主如果是使用qt5的話,應該不會有這個問題。
uj5u.com熱心網友回復:
建議要添加控制元件在自己寫的源檔案里加,不要在ui檔案里加uj5u.com熱心網友回復:
你好,向你請教下你說的這個問題。目前遇到這個問題,不知道怎樣去解決,開發環境是vs2010+qt5,希望你能給個方向,uj5u.com熱心網友回復:
所以自動生成的檔案都在代碼中提示你不能修改的字樣。所以這些檔案是不能被修改的。
如果你確實需要修改這些,使用頭檔案或則宏定義來修改。
uj5u.com熱心網友回復:
既然ui_*.h不能修改,那么你就不應該在該檔案中添加東西;我遇到過就是這種情況,對qt不是太熟悉導致的;
所以扎實的基礎是很重要的~
uj5u.com熱心網友回復:
改.ui檔案,中間檔案不需要修改轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/181453.html
標籤:工具平臺和程序庫
