2010-06-24 65 views
1

我正在使用Qt Creator。當我編譯一個應用程序時,.ui文件是變成編譯代碼,還是在運行時讀取和處理。我問,只是因爲我在看UI的性能,如果它在運行時加載,我會想象會有一些懲罰呢?在編譯時或運行時是否處理Qt .ui文件?

+0

您是否認爲它可能在運行時被處理。這將是每次你運行你的應用程序。這是一個矯枉過正的問題。從邏輯上說,它必須是編譯時間。它是。 – Narek 2010-06-25 09:13:23

回答

4

如果您正在使用QtCreator並且沒有改變任何項目,ui文件將用於生成包含創建UI的代碼的頭文件。

例如,如果您的UI文件是myform.ui,則生成的頭文件(使用uic工具)將爲ui_myform.h

如果你打開它,你會看到創建你的UI的代碼。

+0

我不一定。我看到了實際的表單本身,但是我添加到它的所有小部件都不在那裏。沒有代碼將窗口小部件添加到窗體。 我看到ui-> setupUi(this);在CPP文件中,但它仍未列出每個單獨的控件。 – esac 2010-06-24 14:52:02

2

我相信你可以做 - 但是如果你沒有寫任何特殊的代碼在運行時加載.ui文件,它可能被編譯到C++中。

+1

正確;通常的方法是用uic從.ui文件生成C++代碼,然後像往常一樣編譯該C++代碼。但是也可以使用QUiLoader類在運行時加載它們。 – rohanpm 2010-06-24 05:40:34

+0

謝謝,來自Parsnips的評論,我假設,因爲我使用QtCreator直接編譯成一個.exe,那麼它正在編譯並且不會在運行時加載。 – esac 2010-06-24 05:58:33