0

私は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 パッケージにあります。

4

1 に答える 1

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()
于 2015-04-08T16:30:58.520 に答える