hacı koddan hiç bişey anlamadım valla biraz sade yazarsan hata daha rahat anlaşılabilr. buton donuyo demişsin de buton yok ki ortada check button tik koyma için değil mi ? ayrıca donuyo dan kastın ne ? sorunu ve ne yapmak istediğini daha açık anlatırsan anlaşılır olur belkide sorun bende ben anlamadım vesselam.
Dediğim gibi yeni başladım o yüzden kod karışık olabilir mantığını anlamaya çalışıyorum.
hedefim butona bastığımda sonsuz döngüde 1 sn de bir ‘a’ harfine basan script yazmaktı yazdım da ama atıyorum time.sleep i 300 sn ye cıkardığım zaman buton donuyo uygulama yanıt vermiyo hatası alıyorrum.
check button kullanma nedenim butonun secili olup olmadığını görebilmekti. check button yüzünden oldu galiba
Tkinter da butona basıldığında bir kilitlenme oluyorsa muhtemelen sonsuz bir döngüye giriliyor ve döngü kırılmıyor demektir. Threading bilmediğim bir konu ama döngü kırılması gereken yerde kırılırsa sorununuz çözülür hocam. ‘Break’ komutu kullanılabilirse dene derim
Evet doğru. Çünkü sizin belirlediğiniz süre kadar yazdığınız yerde bir time.sleep() komutu varsa program buraya kadar okuyup 10 sn(belirlediğiniz süre) boyunca burada bekliyor. Daha sonra kaldığı yerden kodlar işlemeye devam ediyor. Donması da gayet doğal.
@nickelangelo@Arif_RYG@BandoLero
vakit ayırıp cevap verdiğiniz çok teşekkürler. @BandoLero yazdığı kod işe yaradı threading için 2 ayrı def kullanmak gerekiyormuş ben aynı zamanda döngü olarak kullandığım için ilk tıklamada time.sleep süresi kadar bekleyip yanıt vermiyor hatası alıyordum.
import tkinter as tk
import time
import pyautogui
import threading
Çözüldü dedik ama ufak bir problem var. komutu durduramıyorum…
buton işaretli 30 sn sonra ‘a’ harfini yazdıracak işareti kaldırsam bile daha önceden tıkladığı için harfi yazdırmaya devam ediyor bunu after kullanarak iptal edebilir miyim?
Genel olarak yok. En “managed” sistemlerde bile goremedim. Olsa da ya deprecated, ya da bin tane warning’le beraber geliyor. Thread’i icerden kapatmak en mantiklisi.