Как использовать QElapsedTimer без QTimer?

Когда я попытался использовать QElapsedTimer для очистки текста в метке, я не смог найти способ использовать его без QTimer. Есть ли способ подключить метод, чтобы он что-то делал, когда QElapsedTimer достигает определенного значения? Чтобы быть более конкретным, я хочу очистить текст, который я установил дляlblSendErrorиспользуяprint_username()метод через 5 секунд прошел. Здесь я использовалclear_username()метод, чтобы очистить его. Прямо сейчас я подключил его к QTimer, чтобы он периодически запускался.

Это моя текущая реализация QElapsedTimer в моем коде:

      class win2(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        uic.loadUi('designs/win2.ui', self)
        
        self.butPrevious.clicked.connect(self.goto_page1)
        self.butSend.clicked.connect(self.print_username)
        self.clearTimerE = QtCore.QElapsedTimer()
        print(dir(self.clearTimerE))
        self.clearTimer = QtCore.QTimer()
        self.clearTimer.setInterval(1000)
        self.clearTimer.timeout.connect(self.clear_username)
    
    def goto_page1(self):
        self.hide()
        w1.show()
    def print_username(self):
        self.lblSendError.setText(w1.textUsername.toPlainText())
        self.clearTimerE.start()
        self.clearTimer.start()
    def clear_username(self):
        print(self.clearTimerE.elapsed())
        if self.clearTimerE.elapsed() >= 4000:
            self.lblSendError.setText('')
            #self.clearTimerE.restart()
            self.clearTimer.stop()

0 ответов

Другие вопросы по тегам