-
Üyelik
01.07.2014
-
Yaş/Cinsiyet
28 / E
-
Meslek
Fabrika İşçisi
-
Konum
Gaziantep
-
Ad Soyad
A** G**
-
Mesajlar
132
-
Beğeniler
11 / 28
-
Ticaret
2, (%50)
Merhabalar şöyle bir kod yazdım ama çalıştırınca form kitleniyor ama işlem devam ediyor. Sizce sorun nedir ?
import pyautogui
import tkinter
import tkinter.messagebox
from tkinter import Button,Label,messagebox
# karıştırma fonksiyonu
def mikser():
while True:
pyautogui.press("1",interval=3.75)
pyautogui.press("2",interval=0.50)
#durdurma fonksiyonu
def durdurma():
pencere.quit
pencere = tkinter.Tk()
pencere.title("DARKORBİT KARIŞTIRICI")
pencere.geometry("300x300")
yazan = Label(pencere,text=" AcG ")
yazan.grid(padx=110, pady=10)
basla= Button(pencere,text="Başla",width=5,height=2,command=mikser)
basla.grid(padx=2,pady=2)
durdur= Button(pencere,text="Durdur",width=5,height=2,command=durdurma,)
durdur.grid(padx=10,pady=10)
pencere.mainloop()
-
Üyelik
09.08.2018
-
Yaş/Cinsiyet
28 / E
-
Meslek
Öğrenci
-
Konum
Diğer
-
Ad Soyad
G** U**
-
Mesajlar
93
-
Beğeniler
5 / 40
-
Ticaret
1, (%100)
Açıkçası pyautogui hakkında pek bir fikrim yok. Sınıf yapısına uyarladım programı. Program çalıştırılınca sonsuz döngüye giriyor. while döngüsü yerine tkinter'in after metodunu kullandım. Durdur fonksiyonu ise destroy metodunu kullanarak programdan çıkış sağlıyor. Siz direkt while yerine after metodu kullanırsanız sorun çözülür muhtemelen.
# karıştırma fonksiyonu
def mikser():
pyautogui.press("1",interval=3.75)
pyautogui.press("2",interval=0.50)
pencere.after(1000, mikser)
#durdurma fonksiyonu
def durdurma():
pencere.destroy()
Edit: OOP silindi.
-
Üyelik
25.06.2012
-
Yaş/Cinsiyet
38 / E
-
Meslek
Engineering Director
-
Konum
İstanbul Avrupa
-
Ad Soyad
T** C**
-
Mesajlar
771
-
Beğeniler
2 / 260
-
Ticaret
0, (%0)
gui thread ile arka planda iş yapan thread birbirine sync olduklarından bir thread in işi bittiğinde diğerini bırakıyordur.
Eğer arka planda gui thread'inden bağımsız bir işlem parçası hep çalışsın istiyorsan, gui'den bağımsız async tetikleyeceğin bir thread init etmelisin.
İki thread arasındaki haberleşmeyide ortak bir queue üzerinden yapabilirsin.
Bu yazdığımın python karşılığı nedir bilmiyorum :)
SOF ->
https://stackoverflow.com/questions/1198262/tkinter-locks-python-when-an-icon-is-loaded-and-tk-mainloop-is-in-a-threadyazdığıma benzer bir şey.
https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)