Проблема в том, что вы создаете и настраиваете новый графический интерфейс (centralWidget
) всякий раз, когда вы вызываете оба setupEF01
или setupEF02
. Это приведет к «переопределению» существующего (если есть) «основного» центрального виджета QMainWindow.
Вам не следует устанавливать centralWidget
для каждой кнопки, которую вы хотите, а вместо этого добавлять ее к существующей.
Основываясь на своем собственном коде, именно так вы должны его реализовать.
class Ui_MainWindow(object):
def setupMainWindow(self, MainWindow):
_translate = QCoreApplication.translate
MainWindow.setObjectName("MainWindow")
MainWindow.resize(320, 410)
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.pushButton1 = QPushButton(self.centralwidget)
self.pushButton1.setGeometry(QRect(60, 30, 80, 30))
self.pushButton1.setObjectName("pushButton")
self.pushButton1.setText(_translate("MainWindow", "EF01"))
self.pushButton1.clicked.connect(self.runEF01)
self.pushButton2 = QPushButton(self.centralwidget)
self.pushButton2.setGeometry(QRect(180, 30, 80, 30))
self.pushButton2.setObjectName("pushButton2")
self.pushButton2.setText(_translate("MainWindow", "EF02"))
self.pushButton2.clicked.connect(self.runEF02)
def runEF01(self):
ef01.GoToPose()
def runEF02(self):
ef02.GoToPose()
def runAll(self):
self.setupMainWindow(MainWindow)
Тем не менее, похоже, что вы пытаетесь написать свой собственный код на основе вывода pyuic
, учитывая файл пользовательского интерфейса, сохраненный из Qt Designer, который просто неверен .
Вы даже не должны смотреть на эти файлы (на самом деле, в заголовке четко указано, что вы никогда не должны редактироватьих, хотя я могу понять путаницу).
Вместо этого вам следует создать и сохранить графический интерфейс в Designer (если вам нужно), а затем следовать предложенному PyQt поведению, как объяснено здесь . Это может показаться немного ошеломляющим, но я могу вам сказать, что это лучший способ сделать это, так как использование вывода pyuic для создания собственного кода (особенно если вы новичок в Qt) действительно не очень хороший подход.