Merhabalar;
Öncelikle kodları paylaşayım:
import tkinter as tk
import threading as th
class App(tk.Tk):
def baslat(self): self.sorular[1] = True
def __init__(self):
super().__init__()
self.geometry("700x700")
basladimi = True
birinciadim = False
ikinciadim = False
ucuncuadim = False
dorduncuadim = False
son = False
self.birinci_adim_tamam = lambda: ...
self.ikinci_adim_tamam = lambda: ...
self.dorduncu_adim_tamam =lambda: ...
self.basla = lambda: ...
self.aktif = []
self.BOLUMLER = [(tk.Label(text="Hoşgeldiniz!", font=("Open Sans", "20", "bold")),
tk.Label(text="Başlamak başla butonuna basın"),
tk.Button(text="Başla", command=self.baslat),
basladimi),
(tk.Label(text="İkinci adım"),
tk.Button(text="Geç", command=self.birinci_adim_tamam),
birinciadim)
#BU böyle devam edecek
]
self.baslatici()
def baslatici(self):
def func():
for demet in self.BOLUMLER:
for e in demet:
try:
e.pack()
self.aktif.append(e)
except TypeError:
KONTROL = e
while True:
if KONTROL:
for silinecek in self.aktif:
silinecek.pack_forget()
t = th.Thread(target=func)
t.start()
app = App()
app.mainloop()
Kodların bu haliyle bir şey anlamak zor. O yüzden şu açıklamaları yapayım:
Setup dosyalarındaki gibi ileri-geri butonlarıyla değişen pencere öğeleri olur ya, benimki de öyle.
self.bolumler
listesindeki demetlerin son öğeleri pencereyi bir sonraki bölüme geçirecek kontrol değişkenleri oluyor. Bu değişkenlerin ilk durumu False
, butona basılınca çalışan fonksiyon duruma göre onu True
yapıp pencereyi bir sonraki bölüme geçiriyor. Durum böyle devam ediyor, ancak sürekli sıkıntı çıkıyor. Bir süredir bunu çözemedim ve işler iyice karıştı. Çıkan sorunlar:
-
self.baslatici
metoduKONTROL
niteliği:UnboundLocalError
- Program ilk bölümü gösteriyor, bir sonraki bölüme geçmek isteyince pencere temizleniyor ve öyle kalıyor.
Yardımlarınızı bekliyorum