PyQt4, pyqtSignal
От: neFormal Россия  
Дата: 20.06.09 09:26
Оценка:
мде.. пока писал вопрос, пришла мысль и нашёлся ответ..
пример:
from PyQt4 import QtGui, QtCore

#########################################################
class MainWidget(QtGui.QWidget):
    trigger = QtCore.pyqtSignal()
    
    def __init__(self, parent = None, *args, **kwargs):
         QtGui.QWidget.__init__(self, parent)
#        self.trigger = QtCore.pyqtSignal()
    
    def test_handle(self):
        print 'WOW!!!!!!!!!!'
    
    def test(self):
        self.trigger.connect(self.test_handle, QtCore.Qt.QueuedConnection)
        self.trigger.emit()


если pyqtSignal() объявить в __init__, то будет ошибка (закомменченая строчка)..
AttributeError: 'PyQt4.QtCore.pyqtSignal' object has no attribute 'connect'

pydoc тоже говорит, что connect-а у pyqtSignal нет..
print показал, что pyqtSignal в QtGui.QWidget.__init__(self, parent) превращается в pyqtBoundSignal.. pyqtSignal bound-ят к какому то QObject..

я не понял только одного: почему, если сделать self.trigger = QtCore.pyqtSignal() перед QtGui.QWidget.__init__(self, parent), то ошибка всё равно будет?.
в чём разница между мембером, объявленным в теле класса, и мембером, объявленным в теле конструктора?.
...coding for chaos...
python qt
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.