2009-12-15 4 views

답변

3

두 번째 예제는 일부 Qt 버전 (새로운 버전)에서만 지원되는 반면, 첫 번째 버전은 이전 버전에서 지원됩니다. 하지만 둘 다 맞습니다. 과부하 신호가있는 경우

+1

PyQt 4.5 AFAIK에서 도입되었습니다. –

0

AFAIK는 새로운 스타일은 당신이 좋겠 그래서

self.ui.add_button.clicked.connect(self.printer) 
말하자면, 또한이 있다면

사용할 수 없습니다 하는

clicked(float, float) 

그렇게 작동하지 않습니다 더 오래된 스타일로 돌아 가야한다. 항상 둘 다 알고있는 것이 좋습니다.

0

이 게시물은 꽤 오래 알고 있지만 난 그냥 어쩌면 당신도 지금이 하루를 저장합니다, 그것은 우연히 발견했다; yey, 확인 ... 그런데 , 그것은 그래서 여기에 내 첫 번째 게시물입니다) !

경고, 나는이 코드를 테스트하지 않았다, 난 그냥 코드의 일부 조각을 복사 내가 얼마 전에 쓴, 그래서 약간의 오차가있을 수 있습니다,하지만 난 어쨌든

PyQt는 새로운 스타일의 신호 간단히 도움이되기를 바랍니다 : 당신이 위의 참조 신호

,617에 관한 것입니다, 이벤트 및 신호가 동일하지 :

# notice that the signal declarations are at class level (not inside some method) 

class MyClass(QObject): # must subclass QObject (or subclass) 

    # declaring signals 
    mySimpleSignal = pyqtSignal() 
    mySignalWithArguments = pyqtSignal(int, list) 
    myOverloadedSignal = ([int, object],[str,object]) 

    def __init__(self, parent=None): 
     super(MyClass,self).__init__(parent=parent) # remember to init the super class 
     [...] 

    # methods 
    [...] 

    # connecting signals 
    def connectSignalsMethod(self): 
     # connecting simple signal 
     self.mySimpleSignal.connect(self.mySlot) 
     # connecting signal with arguments 
     self.mySignalWithArguments.connect(self.mySlotWithArguments) 
     # connecting overloaded signals 
     self.myOverloadedSignal[int, object].connect(self.mySlot1) 
     self.myOverloadedSignal[str, object].connect(self.mySLot2) 

     # same syntax for disconnect() 


    # emitting signals 
    def emitSignalsMethod(self): 
     # emitting simple signal 
     self.mySimpleSignal.emit() 
     # emitting signal with arguments 
     self.mySignalWithArguments.emit(123,['this','is','a','list']) 
     # emitting overloaded signal 
     myOverloadedSignal[str,object].emit('this is a string', myObject) 


    # my slots 
    @pyqtSlot() 
    def mySlot(self): 
     print('hey!') 

    @pyqtSlot(int, list) 
    def mySlotWithArguments(self, someNumber, someList): 
     print('got a number: %d and a list: %s' % (someNumber, someList)) 

    @pyqtSlot(int, object) 
    def mySlot1(self, intArg, objectArg): 
     print('got an int and an object') 

    @pyqtSlot(str, object) 
    def mySlot2(self, str, object): 
     print('got a string and an object') 

    # an overloaded slot 
    @pyqtSignal(int) 
    @pyqtSignal(str) 
    def overloadedSlot(someArgument) 
     print('got something: %s' % someArgument) 

그렇지 않으면,이 http://www.harshj.com/2010/05/06/pyqt-faq-custom-signals-jpeg-mouse-hovers-and-more/#custom

편집을 시도

관련 문제