Heim > Fragen und Antworten > Hauptteil
Qt中的控件可以使用代码添加也可以通过界面编辑器手工拖拽,问题是那些拖拽的控件不能体现在代码里吗?我想针对控件做一些微调(譬如全屏窗口时,某个label依然居中)。这个好像只能通过代码修改布局吧。遇到这种问题时,怎么处理呢?还是你们都是用代码添加控件的?
伊谢尔伦2017-04-17 11:35:26
(很久没用 Qt 了,当时用的是 Qt4, 不过变化不大)
UI 设计器产出的是 .ui 文件,.ui 文件会在编译的时候被 uic 编译成 ui_WidgetXXOO.h, 里面定义了一个 Ui_WidgetXXOO 的类,里面包含了设计器里通过拖拽添加的所有控件对应变量,然后还有个 setupUi 函数,用来完成你在设计器中对控件做的修改。
回到 WidgetXXOO 类,它会包含这个 ui_WidgetXXOO.h, 然后在构造函数以 this 为参数调用 Ui_WidgetXXOO::setupUi, 来加载你通过设计器来添加的控件,和做的修改。
以上的 UI 设计器的工作原理,你可以用 Qt Creator 创建一个默认项目,就可以看到我上面提到的那些代码。它是一个透明的工作过程,你如果需要自己来写代码,修改控件,只需要在 WidgetXXOO 的构造函数中,紧接着 Ui_WidgetXXOO::setupUi, 来写你要加的代码就可以了。
在 Qt 开发中,UI 设计器是一个非常好用的东西,通常能用 UI 设计器的都是直接拖,然后在此基础上自己写代码完成那些通过 UI 设计器完成不了的工作。
PHP中文网2017-04-17 11:35:26
界面编辑器实际上编辑的是.ui文件,你可以直接用文本编辑器打开.ui文件进行编辑。这些拖拽的控件可以通过ui对象来获取,所以即使是拖拽上去的控件,也可以由代码动态地控制它们。