将 qtDesigner.ui 文件链接到 python/pyqt?

因此,如果我进入 QtDesigner 并构建一个 UI,它将被保存为。Ui 文件。如何将其作为一个 python 文件或在 python 中使用它?

137800 次浏览

您需要使用 pyuic 工具(site-package pyqt4 bin)从 ui 文件生成一个 python 文件

pyuic form1.ui > form1.py

与 pyqt4

pyuic4.bat form1.ui > form1.py

然后可以将 form1导入到脚本中。

您可以使用以下命令将.ui 文件转换为可执行的 python 文件。

pyuic4 -x form1.ui > form1.py

现在您可以直接执行 python 文件

python3(whatever version) form1.py

您可以导入这个文件并使用它。

在代码中使用.ui 的另一种方法是:

from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget)
...
#somewhere in constructor:
uic.loadUi('MyWidget.ui', self)

两种方法都不错。不要忘记,如果您使用 Qt 资源文件(非常有用)的图标等,您必须编译它太:

pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc

注意,当 uic编译接口时,它在。Py 文件,因此必须将资源编译为具有此名称的文件,或者在生成的代码中重命名该文件。

我觉得这篇文章很有帮助。

Http://talk.maemo.org/archive/index.php/t-43663.html

我将简要描述创建.ui 文件并将其更改为. py 文件的操作,这些操作摘自上一篇文章。

  1. 从开始菜单启动 Qt 设计器。
  2. 从“新窗体”窗口创建“主窗体”
  3. 从“显示部件”到左手边“部件框菜单”的底部
    添加“标签小部件”(单击拖放)
  4. 双击新添加的 Label Widget,将其名称更改为“ Hello World”
  5. 此时,您可以使用 Control + R 热键来查看它的外观。
  6. 如果需要,可以通过拖放来添加按钮或文本或其他小部件。
  7. 现在保存你的表单. . File-> Save As-> “ Hello Worldd.ui”(Control + S 也会显示
    “另存为”选项)记下保存“ Hello World”的目录
    (为方便起见,我将我的文件保存在(C:)中)

创建并保存了该文件,现在我们将使用 pyuic 从中生成 Python 代码!

  1. 从开始菜单打开一个命令窗口。
  2. 现在把“ cd”放到你为我保存“ Hello Worldd.ui”的目录中,我必须这么做 “ cd”,并且处于“ C: >”提示符下,其中保存了我的“ Hello World d.ui”。
  3. 到达存储文件的目录时,请键入以下内容。
  4. Pyuic4-x helloworld.ui-o helloworld.py
  5. 恭喜! ! 您现在有了一个 python Qt4 GUI 应用程序! !
  6. 双击 helloworld.py 文件运行它
    它在 pyscripter 中打开,然后我从那里“运行”文件)

希望这对谁有帮助。

结合 麦克斯的回答Shriramana Sharma 的邮件列表,我构建了一个小的工作示例,用于加载包含 QMainWindowmywindow.ui文件(因此只需选择在 Qt Designer 的 File-New对话框中创建一个 Main Window)。

下面是加载它的代码:

import sys
from PyQt4 import QtGui, uic


class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('mywindow.ui', self)
self.show()


if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())

您可以像这样编译 ui 文件

pyuic4 -x helloworld.ui -o helloworld.py

为了将.ui 文件编译成.py 文件,我这样做了:

python pyuic.py form1.ui > form1.py

阿特。

还可以使用 PyQt5中的 uic和以下代码。

from PyQt5 import uic, QtWidgets
import sys


class Ui(QtWidgets.QDialog):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('SomeUi.ui', self)
self.show()


if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
sys.exit(app.exec_())

在我看来,更简单的方法是首先像前面提到的那样导出到. py:

pyuic4 foo.ui > foo.py

然后在代码中使用它(例如 main.py) ,比如:

from foo import Ui_MyWindow




class MyWindow(QtGui.QDialog):
def __init__(self):
super(MyWindow, self).__init__()


self.ui = Ui_MyWindow()
self.ui.setupUi(self)


# go on setting up your handlers like:
# self.ui.okButton.clicked.connect(function_name)
# etc...


def main():
app = QtGui.QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())


if __name__ == "__main__":
main()

这种方法使其他不使用 qt 设计器读取代码的人能够读取代码,并且还将功能代码保留在 foo.py之外,这些代码可能会被设计器覆盖。您只需引用 uiMyWindow类,如上所示。

使用 Anaconda3(2018年9月)和 QT 设计器5.9.5。 在 QT 设计器中,将文件保存为 ui。 打开 Anaconda 提示。搜索您的文件: cd C: ... (复制/粘贴文件的访问路径)。 然后写: pyuic5-x helloworld.ui-o helloworld.py (helloworld = 文件名)。 启动 Spyder。打开您的文件。

在 pyqt5中将 ui 文件转换为.py 文件

pyuic5.exe youruifile.ui -o outputpyfile.py -x

(2020年11月)这对我有用(UBUNTU 20.04) :

pyuic5 /home/someuser/Documents/untitled.ui > /home/someuser/Documents/untitled.py