Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to emit signals with parameters

My first question about this topic was QtCore.SIGNALS not working on my code.

But how to run this function two times with different parameters? For example:

first time argument = 0

n[0]

second time argument = 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()
like image 510
Caporeira Avatar asked Dec 08 '25 16:12

Caporeira


1 Answers

Define the signal with the parameter types you want to send:

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

Then emit the actual values:

    def run(self):
        print('n[0]')
        self.trigger.emit(0)
        time.sleep(10)
        print('n[1]')
        self.trigger.emit(1)
like image 117
ekhumoro Avatar answered Dec 11 '25 15:12

ekhumoro