在Monkey Studio中使用Python PyQT4的槽和信号

0 投票
1 回答
3244 浏览
提问于 2025-04-16 09:50

我正在用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++错误。

撰写回答