如何从 pyuic .py 文件重建 .ui 文件

use*_*770 2 python pyqt qt-designer pyuic

不久前,我使用 PyQt 做了一个项目。我创建了一些 .ui 文件并使用 pyuic4 生成了相应的 .py 文件。我想重新开始工作,但我丢失了 .ui 文件(我格式化了我的电脑并进行了备份,但 .ui 文件驻留在 Qt 设计器文件夹中并丢失了)。

有什么办法可以从生成的 .py 文件中恢复那些 .ui 文件?

ekh*_*oro 5

可以使用QFormBuilder做到这一点

from PyQt4 import QtCore, QtGui, QtDesigner
from myui import Ui_Dialog

def dump_ui(widget, path):
    builder = QtDesigner.QFormBuilder()
    stream = QtCore.QFile(path)
    stream.open(QtCore.QIODevice.WriteOnly)
    builder.save(stream, widget)
    stream.close()

app = QtGui.QApplication([''])

dialog = QtGui.QDialog()
Ui_Dialog().setupUi(dialog)

dialog.show()

dump_ui(dialog, 'myui.ui')
Run Code Online (Sandbox Code Playgroud)

(注意:为了获得最佳结果,显示窗口似乎非常重要)。

不过,不要指望能完美地重建原始 ui 文件。你几乎肯定需要做很多整理才能得到可接受的东西 - 但如果你的用户界面非常复杂,它应该仍然值得。