Screenshot yazılımında gecikme süresi programı donduruyor

Ekran Alıntısı

Nedeninin time.sleep(4000) kodu olduğunu düşünüyorum. Çünkü bu kodu kaldırınca donmuyor, direkt screenshot alıyor.

def screenshotAl(self):

        sure = self.ui.comboBox.currentText()

       

        if sure == "0":

            time.sleep(0)

            resim = pyautogui.screenshot("screenshot.png")

        if sure == "1":

            time.sleep(1000)

            resim = pyautogui.screenshot("screenshot.png")

        if sure == "2":

            time.sleep(2000)

            resim = pyautogui.screenshot("screenshot.png")

        if sure == "3":

            time.sleep(3000)

            resim = pyautogui.screenshot("screenshot.png")

        if sure == "4":

            time.sleep(4000)

            resim = pyautogui.screenshot("screenshot.png")

        if sure == "5":

            time.sleep(5000)

            resim = pyautogui.screenshot("screenshot.png")

Bu donmayı nasıl engelleyebilirim? 0 saniye dışında tümünde donuyor.

Bekleme, screenshot alma gibi isleri main thread’de yapmamalisin, ayri bir thread ac ve bekleme isini orada yap, yine ayni thread’den screenshot’u da alabilirsin.

thread nedir? Fonksiyon mu?

Niye internetten araştırmıyorsun ?

2 Beğeni
import threading

# self.screenshotAl() çağırırken şu şekilde çağırmalısın,
threading.Thread(target=self.screenshotAl).start()

# Mesela baslat = lambda: threading.Thread(target=self.screenshotAl).start() şeklinde bir fonksiyon oluşturup, bunu butona da bağlayabilirsin.
# self.buton.clicked.connect(baslat)
1 Beğeni
2 Beğeni