簡體   English   中英

在pyqt4 qobject類中連接pyqt4信號

[英]connecting pyqt4 signals in a pyqt4 qobject class

我有兩節課; 一個用於我的窗口,一個用於我的控制對象

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() )

和我的控制對象

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類型連接。

無論如何,信號也會在窗口類中正常連接。

我嘗試給_scanOre @ QtCore.pyqtSlot(str,name ='scanGo')並將name參數添加到信號創建中。 我不確定我在這里缺少什么。

你忘了初始化QObject

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM