Time.sleep'ten QTimer'a geçiş

time.sleep ile bir işlem yaptığım zaman GUI donuyor. Bunun için QTimer kullanmamı önerdiler fakat time.sleepten QTimer’a aynı şekilde nasıl geçireceğim konusunda hiçbir fikrim yok. Baya döküman inceledim fakat başaramadım. Ya singleshot ile arka arkaya 400 defa yazdırdım ya da hiç yazdıramadım.

time.sleep olarak kod aynı bu şekilde. Düzgün çalışıyor fakat GUI donuyor. Yardımcı olursanız sevinirim.

def pressed(self):             
        self.infoLabel.clear()
        self.infoLabel.setText(self.infoLabel.text()+ " On The Way! Go chat.")
        randomTimer = random.uniform(5.2, 8.9) 
        time.sleep(randomTimer)                    
        myKeyboard.type("ABC")  
        myKeyboard.press(Key.enter)
        self.infoLabel.clear()
        self.infoLabel.setText(self.infoLabel.text()+(" You typed ABC " + str(randomTimer)[0:6] + " seconds apart..."))

Fonksiyonu time.sleep kısmından iki parçaya (iki farklı fonksiyona) ayırıp ilk parçanın sonunda ikinci parçayı QTimer ile çağırabilirsiniz.

Benzer bir işlemi burada Tkinter ile yapmıştım:

1 Beğeni

tkinter ile ilgili çok fazla açıklayıcı türkçe/ingilizce döküman var ama pyqt5 ile ilgili dökümanlar hep karışık o yüzden bunu benim belirttiğim kod ile nasıl yapabilirim bir fikrim yok maalesef.

QTimer’ı zaten kullanabiliyorsunuz diye anladım. İstediğiniz algoritmayı kuramamışsınız sadece. Benim verdiğim linkte örnek kod var.

Kendi dökümanını denediniz mi?

Şu şekilde yapılıyormuş. Teşekkür ederim ilginiz için.

    randomTimer = float(random.uniform(5,10))
    QtTest.QTest.qWait(randomTimer*1000)