魔方网表 让信息化更简单

 找回密码
 注册
查看: 5065|回复: 1

Qt系列教程【2.5】动态对话框(Dynamic Dialogs)

[复制链接]
admin 发表于 2008-11-25 09:45:00 | 显示全部楼层 |阅读模式
动态对话框是程序运行时用Qt Designer的.ui文件创建的对话框。我们可以在程序运行时用QUiLoader类加载.ui文件,而不用使用uic将.ui文件转换成C++代码了。方法如下
  1. QUiLoader uiLoader;
  2. QFile file("sortdialog.ui");
  3. QWidget *sortDialog = uiLoader.load(&file);
  4. if (sortDialog) {
  5. ...
  6. }
复制代码


我们可以通过使用QObject::findChild<T>()来使用窗体的子控件;
  1. QComboBox *primaryColumnCombo =
  2. sortDialog->findChild("primaryColumnCombo");
  3. if (primaryColumnCombo) {
  4. ...
  5. }
复制代码


findChild<T>()函数是一个模板成员函数,它将返回符合给定名字和类型的子对象。由于编译器的限制,这个函数在MSVC 6中是不可用的。如果你需要使用MSVC 6编译器,那么可以调用qFindChild<T>()全局函数来代替,它们的实现方法本质上是相同的。

QUiLoader类是在一个单独的类库中的。如果要在Qt应用程序中使用QUiLoader,我们必须在程序的.pro文件中的添加一行代码:

CONFIG += uitools

动态对话框使我们可以不重新编译应用程序,就能改变窗体的布局。动态对话框也可以被用来创建瘦客户端程序,这种程序可执行只有一个前端的固定窗体,而其它窗体都将根据需要,动态创建的。
俊格一19lk 发表于 2017-2-15 10:27:47 | 显示全部楼层
非常谢谢楼主,顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2024-3-29 06:38 , Processed in 0.062028 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表