您好,登錄后才能下訂單哦!
uic讀取由QtDesigner生成的XML格式的用戶界面定義文件(.ui文件),然后生成其對應的C++頭文件。
若界面文件為ZZZ.ui,則對應生成的頭文件為ui_ZZZ.h。默認情況下:
①基于QMainWindow的程序,會生成一個叫ui_mainwindow.h的頭文件
②基于QDialog的程序,會生成一個叫ui_dialog.h的頭文件
③基于QWidget的程序,會生成一個叫ui_widget.h的頭文件
由Qt Creator自動完成的工作有如下:
(1)在生成的頭文件中,首先會定義一個叫Ui_XXX的類,其中XXX是主窗口的objectName。
比如我將主窗口的objectName設為masikkk,則頭文件中會定義類Ui_masikkk
此類中有所有控件的聲明,以及setupUi(QMainWindow */QDialog */QWidget *)函數的定義。
在setupUi()函數中,會定義控件的所有屬性和行為。
最后,會定義一個名為Ui的命名空間,里面聲明一個類masikkk,此類繼承自Ui_masikkk :
namespace Ui {
class masikkk : public Ui_masikkk{};
}
(2)在主窗口的頭文件中,會聲明命名空間Ui :
namespaceUi{
classmasikkk;
}
并且在類的定義中聲明一個私有的Ui::masikkk類的指針 * ui:
Ui::masikkk * ui;
在構造函數實現時,會在參數列表中新生成一個Ui::masikkk類的對象賦給指針ui:
ui(new Ui::masikkk)
并在函數體內調用setupUi()函數,用主窗口的指針(this指針)作參數:
ui -> setupUi(this);
這樣就實現了為程序加載界面。
注意:如果你在Qt Designer中更改了主窗口的objectName,則ui文件生成的頭文件中也會相應自動修改,
但在主窗口的頭文件和實現文件中,不會自動將類名修改為新的objectName,需要手動修改的地方有三個,
在上文中我已分別用下劃線標出了,只需將這三個地方修改為主窗口的新的objectName就行了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。