Yapıcagım program da bir yükleme işareti olarak yazının sonun da her 1 saniyede 1 nokta koyması gerek ama program direk en sondaki yazıyı çıkartıyor. Bunu sorunu nasıl çözebilirim.?
Kodlar
*main.py
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
import time
class main2(BoxLayout):
pass
class main(App):
def build(self):
return main2()
def bas(self):
self.root.ids.lbl.font_size = 20
for i in range(1):
time.sleep(1)
self.root.ids.lbl.text = "Yükleniyor."
for i in range(1):
time.sleep(1)
self.root.ids.lbl.text = "Yükleniyor.."
for i in range(1):
time.sleep(1)
self.root.ids.lbl.text = "Yükleniyor..."
for i in range(1):
time.sleep(1)
self.root.ids.lbl.font_size = 30
self.root.ids.lbl.text = "Merhaba !!!"
if __name__ == "__main__":
main().run()
*main.kv
<main2>:
orientation: "vertical"
Label:
id: lbl
Button:
text: "Tamam"
id: btn
on_press: app.bas()
Arkada bir iş yapılırken böyle bir ekranın oluşmasını istiyorsanız, @Cihat_Altiparmak’ın önerdiği çözüm işe yaramayacaktır. Bu “bas” fonksiyonunu, “Yükleme” işlemi bitene kadar farklı bir thread içerisinde çalıştırmak işinizi görecektir.
Bu işe yarar, ben threading.Timer kullanarak hallettim.
Ben sorunu Timer ile halledip cevaba yazacakken sizin cevabı gordum mutlu oldum,zaten çözdüm sorunu,ama sizin onerinizi gorunce daha bir mutlu oldum açıkçası.
Thread kullanılacak diye bir kural yok ama,mesela bu,basit bir kronometredir,ama threading modulu kullanılmadan yapılmış.
main.py https://paste.ubuntu.com/p/wrh4k54N2z/