Qt中的UIC
Qt中的UIC(User Interface Compiler, 用户界面编译器):读取由Qt Widgets Designer生成的XML格式(.ui)文件并创建相应的C++头文件或Python源文件。如将mainwindow.ui文件生成ui_mainwindow.h。
uic.exe位置在6.8.0\msvc2019_64\bin ,其支持的输入参数如下所示:
mainwindow.ui文件内容示例如下:在vs2022中此文件可以直接使用Qt Creator打开
生成ui_mainwindow.h文件内容示例如下:
Qt Widgets Designer UI文件:以XML格式表示表单的部件树(represent the widget tree of the form in XML format)。表单可以进行以下处理:
在编译时,表单被转换为可以编译的C++代码。
在运行时,表单由QUiLoader类处理,该类在解析XML文件的同时动态构建部件树。
编译时表单处理:
你可以使用Qt Widgets Designer创建用户界面组件,并在构建应用程序时使用Qt集成的构建工具qmake和uic为这些组件生成代码。生成的代码包含表单的用户界面对象。它是一个C++结构体,包含:
(1).指向表单的部件、布局、布局项、按钮组(form's widgets, layouts, layout items, button groups, and actions)的指针。
(2).一个名为setupUi()的成员函数,用于在父部件上构建部件树。
(3).一个名为retranslateUi()的成员函数,用于处理表单字符串属性的翻译。
生成的代码可以包含在你的应用程序中并直接使用。或者,你可以使用它来扩展标准部件的子类。
你可以在应用程序中使用编译时处理的表单,方法如下:
(1).直接方法:构建一个部件作为组件的占位符,并在其中设置用户界面。
(2).单继承方法:继承表单基类(例如QWidget或QDialog),并包含表单用户界面对象的私有实例。
(3).多继承方法:继承表单基类和表单用户界面对象。这样,表单中定义的部件就可以在子类的范围内直接使用。
运行时表单处理:可以通过使用QtUiTools模块来实现,该模块提供了QUiLoader类来处理使用Qt Widgets Designer创建的表单。
自动连接:编译时或运行时表单定义的信号和槽连接可以手动或自动设置,使用QMetaObject在信号和适当命名的槽之间建立连接的功能。
注:以上整理的内容主要来自于Qt官方文档
GitHub:https://github.com/fengbingchun/Qt_Test