Как я могу поместить QMdiSubWindow в QMdiArea QMainWindow?

Я новичок в pyqt. Я хочу сделать приложение с Qmainwindow с его меню и пунктами меню. когда я щелкаю в каком-то пункте меню, QMdiSubWindow должно появиться в qmdiarea. Как я могу это сделать? это мой код qmainwindow:

class Ui_mainForm(QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.resize(928, 695)
        self.qareaMdi = QtGui.QWidget(self)
        #all the design code...
        self.actionFriends.triggered.connect(self.actionFriends_click)
        #more code...
    def actionFriends_click(self):
        #how can I call a qmdisubwindow here?

и это мой код QMdiSubWindow:

class Ui_friendForm(QMdiSubWindow):
    def __init__(self):
        QtGui.QMdiSubWindow.__init__(self)
        self.resize(878, 551)
        QtCore.QMetaObject.connectSlotsByName(self)

заранее спасибо

Обновление: я изменил функцию actionFriends_click следующим образом:

def actionFriends_click(self):
    subwindow_friend = Ui_friendForm()
    self.mdiArea.addSubWindow(subwindow_friend)
    subwindow_friend.show()

Обновление 2: я забыл это. Мы должны добавить ссылку в Ui_mainForm

from VIEW.friendsForm import Ui_friendForm

В этом случае класс QMdiSubWindows Ui_friendForm находится в пакете VIEW.

1 ответ

Решение

Мы должны добавить ссылку в Ui_mainForm (в этом случае класс QMdiSubWindows Ui_friendForm находится в пакете VIEW.) И я изменил функцию actionFriends_click следующим образом:

from VIEW.friendsForm import Ui_friendForm
def actionFriends_click(self):
    subwindow_friend = Ui_friendForm()
    self.mdiArea.addSubWindow(subwindow_friend)
    subwindow_friend.show()
Другие вопросы по тегам