[原创]QT动态加载UI文件注意事项
2009-07-28 09:42
393 查看
QT动态加载UI文件注意事项
在最新的QT4版本中(QT4.1以上)加入了动态载入UI文件的功能。使用如下
QUiLoader loader;
QFile file("calculator.ui");
file.open(QFile::ReadOnly);
QWidget *formWidget = loader.load(&file, this);
file.close();
QMetaObject::connectSlotsByName(this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
setLayout(layout);
setWindowTitle(tr("Calculator Builder"));
以上代码是放在从QWidget派生的自定义类中的构造函数中的。这样调用自定义类的show函数就会显示用designer设计好的界面。
经过使用和观察,发现这个动态加载对UI文件是有限制要求的,不过在官方文档中并未找到相关说明,因此也只能是作为一种总结了。也许官方正在打算改进。
限制1:UI必须是QWidget窗体或QFrame部件,不能是其他类型,如QDialog,QMainWindow
限制2:UI的顶层窗体必须具有布局,也就是窗体的布局不能是“打破布局”这一项。
如果不满足上述两个限制,QUiLoader是不能加载这样的UI文件的。
在最新的QT4版本中(QT4.1以上)加入了动态载入UI文件的功能。使用如下
QUiLoader loader;
QFile file("calculator.ui");
file.open(QFile::ReadOnly);
QWidget *formWidget = loader.load(&file, this);
file.close();
QMetaObject::connectSlotsByName(this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
setLayout(layout);
setWindowTitle(tr("Calculator Builder"));
以上代码是放在从QWidget派生的自定义类中的构造函数中的。这样调用自定义类的show函数就会显示用designer设计好的界面。
经过使用和观察,发现这个动态加载对UI文件是有限制要求的,不过在官方文档中并未找到相关说明,因此也只能是作为一种总结了。也许官方正在打算改进。
限制1:UI必须是QWidget窗体或QFrame部件,不能是其他类型,如QDialog,QMainWindow
限制2:UI的顶层窗体必须具有布局,也就是窗体的布局不能是“打破布局”这一项。
如果不满足上述两个限制,QUiLoader是不能加载这样的UI文件的。
相关文章推荐
- QT 动态加载UI文件注意事项
- QT 动态加载UI文件注意事项
- 关于Qt下动态加载对话框(ui文件)
- QT 动态加载UI 文件
- 关于多线程下动态加载ListView数据源的注意事项
- 动态加载CSS样式表的注意事项
- 详解QUiLoader 动态加载.ui文件
- Java动态加载第三方jar包中的类需要注意的事项
- QUiLoader 动态加载.ui文件
- Qt中如何禁掉所有UI操作以及注意事项(处理各个widget的eventFilter这一层,但是感觉不好,为什么不使用QApplication呢)
- easy UI使用include<>包含页面时以及加载js文件所注意的事项。
- Android动态加载ListView的实现以及注意事项
- Qt之ui在程序中的使用——(3)动态加载ui
- jquery动态加载页面 load方法 注意事项
- 利用Loader来动态加载不同的QML文件来改变UI
- 用ajax动态加载需要的js文件【原创】
- 使用QUiLoader来动态加载.ui文件
- QT下资源使用和资源占用…(可以动态加载资源文件,这样不占内存)
- 动态生成 Excel 文件供浏览器下载的注意事项
- vxWorks5.4下加载.out文件的需要注意事项