如何将QMdiSubWindow放入QMdiArea QMainWindow?

时间:2015-03-23 16:27:20

标签: python-2.7 pyqt qmainwindow qmdiarea

我是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 个答案:

答案 0 :(得分:0)

我们必须在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()