pyqt QAction函数调用的奇怪行为

时间:2015-07-22 15:25:28

标签: function pyqt qaction

我制作了一个简单的窗口并添加了菜单和工具栏。我得到了与行动相关的功能的奇怪行为。 这是代码:

import os
import sys
import sip
import maya.OpenMayaUI as mui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import uic

#----------------------------------------------------------------------
def getMayaWindow():
    ptr = mui.MQtUtil.mainWindow()
    return sip.wrapinstance(long(ptr), QObject)

#----------------------------------------------------------------------
class MainForm(QMainWindow):
    def __init__(self):
        super(MainForm, self).__init__(getMayaWindow())
        self.setGeometry(50,50,600,600)

        mdiArea = QMdiArea()
        self.setCentralWidget(mdiArea)

        self.testAction = QAction(QIcon('ico.png'), '&Test', self)        
        self.testAction.triggered.connect(self.aaaaa)

        self.menubar = self.menuBar()
        fileMenu = self.menubar.addMenu('&File')
        fileMenu.addAction(self.testAction)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(self.testAction)

        self.statusBar()

    def aaaaa(self):
        print('test')

#----------------------------------------------------------------------
# window
def cacheWnd():
    wnd = MainForm()
    wnd.show()

cacheWnd()

按菜单或工具栏图标时 - 未调用相关功能。但是有必要在课外制作一个全局函数,并在没有自我的情况下打电话,一切都会立即开始起作用。

我纠正了行:

self.testAction.triggered.connect(aaaaa)

并将该函数拖到课堂外:

def aaaaa():
    print('test')

并且一下子全部启动,被调用并运行......

为什么在函数是类的成员之前它不起作用?

0 个答案:

没有答案