У меня есть QWidget (который настроен как пользовательский интерфейс с именем Ui_Form), и я хочу, чтобы он был частью QFrame, который уже является частью моего QMainWindow;этот QWidget является формой пользовательского интерфейса с кнопками и другими объектами. Я попытался добавить его как часть макета фрейма, однако проблема в том, что QPushButtons, которые находятся в Ui_Form, перестают работать, когда я добавляю QWidget в макет, Мой код ниже.
## My QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(object):
def setupUi(self, mainWindow):
# pyuic5 code here ...
self.MyFrame = QtWidgets.QFrame(self.centralwidget)
self.MyFrame.setGeometry(QtCore.QRect(0, 560, 1201, 201))
self.MyFrame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.MyFrame.setFrameShadow(QtWidgets.QFrame.Raised)
# more pyuic5 code here ...
my_form = QtWidgets.QWidget()
my_form_ui = Ui_Form()
my_form_ui.setupUi(my_form)
frame_layout = QtWidgets.QVBoxLayout()
frame_layout.addWidget(my_form)
self.MyFrame.setLayout(frame_layout)
Мой класс Ui_Form, который работал до добавления его в макет
## My Ui_Form class
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, form):
# some pyuic5 code here ...
self.myPushButton = QtWidgets.QPushButton(form)
self.myPushButton.setGeometry(QtCore.QRect(415, 200, 101, 40))
self.myPushButton.setObjectName("myPushButton")
self.myPushButton.clicked.connect(self.printHello)
def printHello(self):
print("Hello World!")
MainWindow будет хорошо отображать все элементы из Ui_Form, но кнопки NOT работают, даже если я вызываю setupUiметод, который соединит кнопку с методом printHello. Есть идеи?