2016-04-11 9 views
2

Meine erste Frage zu diesem Thema war QtCore.SIGNALS not working on my code.Wie zu emittieren Signale mit Parametern

Aber wie diese Funktion zwei Mal mit unterschiedlichen Parametern laufen? Zum Beispiel:

erstes Argument = 0

n [0]

Sekunden Zeitargument = 1

n [1]

def view_splash(self, argument): 
     print('test') 
     label = QLabel("<font color=red size=10<b>" + n[argument] + "</b></font>") 
     label.setWindowFlags(Qt.SplashScreen | Qt.WindowStaysOnTopHint) 
     label.show() 
     QtCore.QTimer.singleShot(5000, label.close) 


class AThread(QtCore.QThread): 
    trigger = QtCore.pyqtSignal() 

    def run(self): 
     print('n[0]') 
     self.trigger.emit() 
     time.sleep(10) 
     print('n[1]') 
     self.trigger.emit() 

Antwort

2

definiert das Signal mit dem Parameter Typen, die Sie senden möchten:

class AThread(QtCore.QThread): 
    trigger = QtCore.pyqtSignal(int) 

Dann emittieren die tatsächlichen Werte:

def run(self): 
     print('n[0]') 
     self.trigger.emit(0) 
     time.sleep(10) 
     print('n[1]') 
     self.trigger.emit(1)