在定义QMainWindow期间导入.ui

时间:2017-10-11 17:22:15

标签: python qt pyqt

我试图加载" mw.ui"文件(由Qt创建者制作)作为我的主窗口上使用的设计。

我成功加载了一个类:

from pyqtgraph.Qt import QtGui, QtCore, uic
mw = uic.loadUi("mw.ui")

但我无法定义我的课程,因为我已经建立了我的对象。我尝试使用

在执行期间编译mw.py
uic.compileUi("mw.ui", "mw.py")

但我有以下错误:

  

追踪(最近一次呼叫最后一次):

     

文件" myFile.py",第26行,in       uic.compileUi(" mw.ui"," mw.py")

     

文件" C:\ Users \ giovanni \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ PyQt5 \ uic__init __。py",第162行,在compileUi中

     

pyfile.write(_header%(uifname,PYQT_VERSION_STR))   AttributeError:' str'对象没有属性'写'

我读到我可以使用pyuic4将ui转换为py文件,但这样做每一个小的改动都需要很长的工作(编译等)

我试图"另存为"使用qtCreator,但我无法在可用格式的无限列表中找到PY

有没有办法在"类定义阶段加载UI文件"没有用pyuic4转换每一个变化?对我来说,可以使用uic.compileUi或类似的东西实现在开头编译的脚本

由于

1 个答案:

答案 0 :(得分:0)

我明白了

class MainW(QtGui.QMainWindow):
    def __init__(self, *args):
         super(MainW, self).__init__(*args)
         uic.loadUi("mw.ui", self)

来自:http://pyqt.sourceforge.net/Docs/PyQt4/designer.html

  

PyQt4.uic.loadUi(uifile [,baseinstance = None [,package =“[,resource_suffix ='_ rc']]])

     

baseinstance - Qt基类的可选实例。如果   指定然后在其中创建用户界面。否则一个新的   自动创建基类的实例。