qt - 将现有 QDialog 保存到 *.ui 文件

标签 qt qt4 pyqt pyqt4

我有一个从数据库表模型动态生成的表单:

enter image description here

我有办法将该表单保存到 *.ui 文件吗?我想允许用户在 Qt Designer 中编辑该表单。

最佳答案

想必您的用户可以添加和编辑的内容一定有一些限制?

如果是这样,那么也许您可以采取更结构化的方法并使用 QWizard提供用于设计和编辑表单的简单界面。该向导将生成 ui 文件,然后使用 uic module 将其加载到您的应用程序中。 (如果您使用的是 PyQt4,那就是 - 因为它不包含 QUiLoader 类)。

当然,要实现此功能,您需要调整当前的动态生成表单过程,以便它也适用于 ui 文件。

编辑

看起来像QAbstractFormBuilder提供用于将小部件加载和保存为 ui 文件的 API。它是 QtDesigner 模块的一部分,现已包含在 PyQt4 中。

话虽如此,我对 load()save() 方法的简短实验并没有产生非常有用的结果 - 但希望其他人能有更多的运气。

就我个人而言,如果我要设计这样的应用程序,我更愿意使用合适的 XML 库(Qt 或几个 Python 标准库模块之一)自己生成 ui 文件。表单布局的结构非常简单且规则,因此 ui 文件复制起来应该不会太困难。以这种方式进行操作的主要好处是它允许完全控制输入和输出。

关于qt - 将现有 QDialog 保存到 *.ui 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689860/

相关文章:

qt - 在 Mac 中使用 QJSON - 遇到一些问题

python - 如何在所有存储在一个大列表中的列表中搜索匹配项

python-3.x - 在 PyQt5 中,如何使用拖放正确移动 QTableView 中的行

python - 如何测试 PyQt/PySide 信号?

c++ - Qt从布局中获取 child

qt - 未调用 QObject 析构函数

qt - QTimer的剩余时间

python - 从 QDockWidget 附加和分离外部应用程序时的问题

linux - setObjectName 未在 Qt 中设置线程名称

c++ - ui上的qt c++神秘的不完整类类型错误