Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何在PyQt5中正确调用小部件?_User Interface_Qt Designer_Pyqt5 - Fatal编程技术网

User interface 如何在PyQt5中正确调用小部件?

User interface 如何在PyQt5中正确调用小部件?,user-interface,qt-designer,pyqt5,User Interface,Qt Designer,Pyqt5,我正在使用PyQt5和Qt设计器创建UI。加载*.ui文件后,我可以用不同的方式调用小部件。我在Qt设计器中定义了两个名为ButtonBrowse和ButtonDoit的按钮对象 class Dialogo(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.ui=uic.loadUi("UserInterfaces/QtGUI1_2.ui",self) se

我正在使用PyQt5和Qt设计器创建UI。加载*.ui文件后,我可以用不同的方式调用小部件。我在Qt设计器中定义了两个名为ButtonBrowse和ButtonDoit的按钮对象

class Dialogo(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui=uic.loadUi("UserInterfaces/QtGUI1_2.ui",self)

        self.ui.ButtonBrowse.clicked.connect(self.load_file)
        self.ButtonDoit.clicked.connect(self.doit)
我想知道为什么ButtonIt会工作,因为我没有在self和ButtonIt之间使用ui?那样做我会有麻烦吗

我想正确的方法是纽扣套的方法

谢谢, Alex

的第二个参数是可选的,并从Qt Designer(在您的示例中是
QMainWindow
)获取顶级类的实例

如果不使用第二个参数,将创建一个全新的ui实例,返回的对象类型将为
QMainWindow

如果您确实使用它,那么来自Qt Designer的所有小部件(除了顶级小部件)都将添加到传入的实例中,并且返回的对象将是类型为
Dialogo
(即,它将与传入的对象完全相同)

因此,在您的示例中,
self.ui
是多余的,因为它将被设置为
self
。您需要做的就是:

class Dialogo(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        uic.loadUi("UserInterfaces/QtGUI1_2.ui", self)
        self.ButtonBrowse.clicked.connect(self.load_file)
        self.ButtonDoit.clicked.connect(self.doit)

谢谢,我想我明白了!