如何生成在Taurusdesigner或Qt下创建的GUI的Python代码?

2024-05-08 19:59:29 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,让我告诉您,我对Qt和Python都是新手。在

我使用Qt(Taurusdesigner)来创建我的gui。 启动Qt(Taurusdesigner)之后,我使用以下命令为特定GUI生成python代码:

taurusuic4 -x -o file.py file.ui
or
pyuic4 -x -o file.py file.ui

在命令行上执行此命令后,我可以生成python文件,但自动生成的类如下所示:

^{pr2}$

当我在Google上搜索任何帮助时,我发现类是这样写的:

class MainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):

如何使用Qt(Taurusdesigner)生成第二种类型的类文件??在

为什么在我的类和在因特网上为帮助而写的类之间存在语法差异。 请帮忙。 提前谢谢。在


Tags: or文件代码命令行py命令uigui
2条回答

taurusuic4/pyuic4生成的ui模块应该导入到主应用程序中。不需要使用-x选项,显然应该选择比“file”更好的模块名:

taurusuic4 -o mainwindow.py file.ui

主应用程序模块应该如下所示:

^{pr2}$

这种方法意味着Qt(Taurus)Designer中的所有小部件最终都是MainWindow类的属性。另一种方法是将ui元素放在单独的命名空间中:

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.handleButton)

setupUI和{}是类MainWindow的两个方法。对于一个类,可以有任意数量的方法,您可以将它们按您喜欢的顺序排列。在

总有一个__init__方法,称为构造函数。此方法在创建对象时调用(例如,当您创建myWindow=MainWindow())时。它通常放在开头,因为它会先被调用。特别是对于QT,必须使用super调用父级的构造函数。在

setupUI是由设计者创建的方法,用于处理布局等。它应该在构造函数中调用。在

您的代码应该如下所示:

class MainWindow(object):
    def setupUi(self, MainWindow):
        #code made by the designer

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        #some code

   def another_method(self):
        #some more code

相关问题 更多 >

    热门问题