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

时间:2010-03-08 01:27:57

标签: python user-interface qt pyqt qt-designer

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

12 个答案:

答案 0 :(得分:57)

在代码中使用.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文件的末尾添加'import images_rc',因此您必须使用此名称将资源编译到文件中,或者在生成的代码中重命名它。

答案 1 :(得分:43)

结合Max's answerShriramana Sharma's mailing list post,我构建了一个小工作示例,用于加载包含mywindow.ui的{​​{1}}文件(因此,只需选择在Qt Designer中创建主窗口) QMainWindow对话框)。

这是加载它的代码:

File-New

答案 2 :(得分:28)

您需要使用pyuic工具(site-packages \ pyqt4 \ bin)从您的ui文件生成python文件

pyuic form1.ui > form1.py

使用pyqt4

pyuic4.bat form1.ui > form1.py

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

答案 3 :(得分:24)

我发现这篇文章非常有帮助。

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

我将简要描述创建和更改.ui文件到.py文件的操作,取自该文章。

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

    1. 从开始菜单中打开命令窗口。
    2. 现在“cd”进入你保存“Hello World.ui”的目录。对我来说,我只需要 “cd \”并且在我的“C:>”提示,我的“Hello World.ui”已保存到。
    3. 当您到达存储文件的目录时,请输入以下内容。
    4. pyuic4 -x helloworld.ui -o helloworld.py
    5. 恭喜!你现在有一个python Qt4 GUI应用程序!
    6. 双击helloworld.py文件以运行它。 (我使用pyscripter并双击
      它在pyscripter中打开,然后我从那里“运行”文件)
    7. 希望这有助于某人。

答案 4 :(得分:13)

您还可以使用以下代码在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_())

答案 5 :(得分:9)

我认为更清洁的方式是首先导出到.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-designer的人阅读代码,并将您的功能代码保存在foo.py之外,可以被设计人员覆盖。您只需引用uiMyWindow类,如上所示。

答案 6 :(得分:8)

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

pyuic4 -x form1.ui > form1.py

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

python3(whatever version) form1.py

您可以导入此文件,然后就可以使用它。

答案 7 :(得分:5)

你可以像这样编译ui文件

pyuic4 -x helloworld.ui -o helloworld.py

答案 8 :(得分:4)

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

python pyuic.py form1.ui > form1.py

ATT。

答案 9 :(得分:2)

in pyqt5 to convert from a ui file to .py file

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

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