首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pyqt4 qobject类中连接pyqt4信号

在pyqt4 qobject类中连接pyqt4信号
EN

Stack Overflow用户
提问于 2012-10-03 00:34:21
回答 1查看 1.3K关注 0票数 0

我有两个类;一个用于我的窗口,一个用于我的控制对象

代码语言:javascript
复制
class window(baseClass, testForm):
    scanStarted = QtCore.pyqtSignal(str)
    def __init__(self,parent=None):
        super(window, self).__init__(parent)
        self.setupUi(self)

        #other window setup
        self._scanner.pushScan.clicked.connect(self._scanClicked)

    def _scanClicked(self):
        self.scanStarted.emit( self._scanner.getTextData() )

和我的控制对象

代码语言:javascript
复制
class vis(QtCore.QObject):
    def __init__(self):
        self._oreList = []

        self._w = window()
        self._w.scanStarted.connect(self._scanOre)

    def _scanOre(self, rawText):
        print "main ->", rawText

当使用QtCore.QObject作为参考时,此信号不会连接到_scanOre。当我将引用切换到python 'object‘时,它会工作得很好。我一直在尝试弄清楚为什么它不能使用QtCore.QObject类型进行连接。

无论如何,信号在window类中也会连接得很好。

我尝试为_scanOre提供名称(str,@QtCore.pyqtSlot=‘scanGo’),并将名称参数添加到信号创建中。我不确定我错过了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 00:42:02

您忘记了初始化QObject

代码语言:javascript
复制
class vis(QtCore.QObject):
    def __init__(self, parent=None):
        super(vis, self).__init__(parent) # you are missing this line
                                          # also the `parent` arg
        self._oreList = []

        self._w = window.window()
        self._w.scanStarted.connect(self._scanOre)

    def _scanOre(self, rawText):
        print "main ->", rawText
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12694474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档