from ttkbootstrap.constants import *
import tkinter as tk
import ttkbootstrap as ttk
import threading
import time
import random
sure = 10
can = 3
puan = 0
soru = ""
banka = [range(2,21),"*+/-","<>"]
kosul = True
def trt():
trt = threading.Thread(target=zamanlama)
trt.start()
def yeni_soru():
global soru,zaman
trt()
soru = "{} {} {} {} {} {} {}".format(random.choice(banka[0]),random.choice(banka[1]),random.choice(banka[0]),
random.choice(banka[2]),random.choice(banka[0]),random.choice(banka[1]),random.choice(banka[0]))
zaman["subtext"] = soru
def dogrula():
global can,puan
if eval(soru) is True:
puan += 10
else:
can -= 1
can_lbl["text"] = can
yeni_soru()
def yanlisla():
global can,puan,sure
if eval(soru) is False:
puan += 10
else:
can -= 1
can_lbl["text"] = can
yeni_soru()
def zamanlama():
sure = 10
while sure > 0:
sure -= 1
yuzde = sure * 10
print(sure)
zaman["amountused"] = yuzde
time.sleep(1)
can -= 1
can_lbl["text"] = can
pencere = tk.Tk()
stil = ttk.Style("vapor")
pencere.geometry("600x350")
kucuk_btn = ttk.Button(text="Yanlış",bootstyle=(DANGER,OUTLINE),command=yanlisla)
kucuk_btn.place(x=300,y=300)
zaman = ttk.Meter(metersize=180,bootstyle=DANGER)
zaman.pack(side=(TOP),pady=10)
can_lbl = ttk.Label(text="Can:",bootstyle=(INFO))
can_lbl.pack(side=LEFT)
buyuk_btn = ttk.Button(text="Doğru",bootstyle=(SUCCESS,OUTLINE),command=dogrula)
buyuk_btn.place(x=200,y=300)
yeni_soru()
pencere.resizable(0,0)
pencere.mainloop()
Yukarıdaki kodda doğru ya da yanlış butonuna bastığımda bir thread bitmeden diğeri başlıyor. Bu da zamanlayıcının erkenden bitmesine sebep oluyor. Bir threadi başlatırken öncekini bitirmenin bir yolu var mıdır? Veya daha kolay bir çözüm yolu geliyor mu aklınıza? Teşekkürler.