User interface 如何在PyQt5中正确调用小部件?
我正在使用PyQt5和Qt设计器创建UI。加载*.ui文件后,我可以用不同的方式调用小部件。我在Qt设计器中定义了两个名为ButtonBrowse和ButtonDoit的按钮对象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
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)
谢谢,我想我明白了!