c++ - 关于Qt中的控件拖拽
阿神
阿神 2017-04-17 11:33:26
0
2
545

Qt中的控件可以使用代码添加也可以通过界面编辑器手工拖拽,问题是那些拖拽的控件不能体现在代码里吗?我想针对控件做一些微调(譬如全屏窗口时,某个label依然居中)。这个好像只能通过代码修改布局吧。遇到这种问题时,怎么处理呢?还是你们都是用代码添加控件的?

阿神
阿神

闭关修行中......

Antworte allen(2)
伊谢尔伦

(很久没用 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 设计器完成不了的工作。

洪涛

界面编辑器实际上编辑的是.ui文件,你可以直接用文本编辑器打开.ui文件进行编辑。这些拖拽的控件可以通过ui对象来获取,所以即使是拖拽上去的控件,也可以由代码动态地控制它们。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!