amacım tkinterın ustunde “threading modulunu” kullanarak bır saat koymaktı, lakin hata alıyorum kodlar ve hata aağıda yardımcı olursanız sevinirim
from datetime import datetime
import tkinter as tk
import time
import threading
pencere = tk.Tk()
def clock():
etiket = tk.Label()
a = 5
while a>=0:
etiket['text']=a
etiket.place(x=10, y=10)
a -= 1
time.sleep(1)
def Clock():
clock()
def main():
pencere.mainloop()
threading.Thread(target=Clock).start()
threading.Thread(target=main).start()
RuntimeError: main thread is not in main loop
Merhaba. tk.Tk
nesneleri ile farklı thread’lar üzerinden etkileştiğiniz için bu hatayı alıyorsunuz. Tkinter ile aralıklı işlemler yapmak istiyorsanız buraya bakabilirsiniz:
Merhaba.
Tkinter kullanırken iki işlem arasında bekleyecekseniz pencere.after kullanmanız daha doğru olur, aksi takdirde arayüzün donması ile alakalı problemler yaşarsınız:
import tkinter as tk
import time
def komut():
lb["text"] = 99
pencere.after(4000, lambda: lb.config(text = 78)) # 4000 milisaniye sonra ikinci argüman olan fonksiyon çalışacak
pencere = tk.Tk()
lb = tk.Label(text=33)
lb.place(x=20, y=20)
b = tk.Button(text='bas', command=lambda: pencere.after(3000, komut)) # 3000…