在Monkey Studio中使用Python PyQT4的槽和信号
我正在用PyQT4和Monkey Studio这个开发工具写我的第一个图形界面应用。
我做了一个对话框(mainwindow.ui),里面有一个按钮,点击这个按钮会发出一个信号 clicked()
,这个信号会被主窗口的一个叫 slot1()
的函数接收。
这是主窗口的代码:
from PyQt4 import uic
(Ui_MainWindow, QMainWindow) = uic.loadUiType('mainwindow.ui')
class MainWindow (QMainWindow):
"""MainWindow inherits QMainWindow"""
def __init__ (self, parent = None):
QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
def __del__ (self):
self.ui = None
def slot1(self):
print "Test"
但是它不工作,出现了这个错误:AttributeError: 'MainWindow' object has no attribute 'slot1'
,意思是说主窗口这个对象没有叫做slot1的属性。
我试着在 def slot1(self)
前面加上 @pyqtSlot("")
,但又出现了这个错误:
NameError: name 'pyqtSlot' is not defined,意思是说找不到这个名字。
我还试过用 @QtCore.pyqtSignature("slot1()")
,但也没有效果。
1 个回答
2
结果我还需要导入 from PyQt4.QtCore import *
,这样我才能使用 @pyqtSlot()
。
不要加上引号,因为那样会出现另一个C++错误。