如何在Python中执行PyQt的.ui代码?

4

我正在为一个脚本制作GUI界面,经过研究后,我发现pyqt会很有帮助。现在我已经用pyqt制作了一个没有工作按钮的GUI界面,但是想查看代码。

我打开了cmd.exe并输入了:

pyuic4 project.ui -o python.py

它帮我创建了一个python.py脚本,展示了我所需的全部脚本,但是当我通过IDLE或命令提示符运行它时,它显示正在运行,但没有GUI打开。我做错了什么吗?

另外,顺便问一下,pyqt适合用来为Windows创建简单的GUI吗,还是只适用于移动开发?

这里是我想要编译和运行的代码片段。

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_FileHash(object):
    def setupUi(self, FileHash):
3个回答

7

请参考这个教程,了解如何使用由pyuic4命令生成的代码;

基本上,您需要执行以下操作:

import sys
from PyQt4.QtGui import QApplication, QDialog
from ui_project import Ui_Name  # here you need to correct the names

app = QApplication(sys.argv)
window = QDialog()
ui = Ui_Name()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

PyQt完全适合在Windows上创建GUI界面。


我的文件目前是project.ui,我想让它变成project.py,你说我应该更正名称,但我没有任何ui_project或ui_name。我尝试过输入“import project.ui”,但那行不通。 - DrKhan
@DrKhan,您执行的命令生成了一个.py文件,您需要将其名称替换为“ui_project”。 - Fábio Diniz
我一定把文件名搞混了,我已经添加了一段代码片段,希望这能展示我想做的事情。 - DrKhan
2
我现在已经搞定了,我输入了以下命令: pyuic4 -x project.ui -o python.py这给了我一个.pyc文件,它可以完全打开,我可以通过在我的原始代码中键入第一个命令来查看代码。 - DrKhan

1
作为一个显著的补充,pyuic4接受“-p”或“--preview”参数,这将通过直接运行UI文件来预览它:
pyuic4 -p project.ui

0

如果你查看pyuic4选项,-x选项是你缺少的。它会将执行UI所需的代码添加到你的Python代码中。你只需要添加-x:

pyuic4 project.ui -x -o python.py


我使用了这个代码,得到了hello.py文件。但是当我尝试执行python hello.py时,什么也没有显示出来。窗口很快就打开并关闭了。 - zinon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接