Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kivy button
#1
Kivyde bir sayacı arttırmak için button bir kere basıp bırakmam lazım, onun yerine basılı tutarak nasıl sayacı artırabilirim? Böyle bir dokunma fonksiyonu varmı?
Ara
Cevapla
#2
PHP Kod:
from kivy.app import App
from kivy
.lang import Builder
from kivy
.uix.boxlayout import BoxLayout
from kivy
.clock import Clock

Builder
.load_string('''
<BoxLayout>:
    orientation: '
vertical'
    Label:
        id: label
        text: '
0'
    Button:
        text: '
Arttir'
        on_press: app.sayac()
        on_release: app.durdur()
    
'''
)

class 
TestApp(App):
    
    
def build(self):
        
self.box BoxLayout()
        return 
self.box
        
    def sayac
(self,*args):
        
self.sayi 0
        Clock
.schedule_interval(self.arttir,0)
        
    
def arttir(self,*args):
        
self.box.ids.label.text str(self.sayi)
        
self.sayi += 1
        
    def durdur
(self,*args):
        
Clock.unschedule(self.arttir)

TestApp().run() 
Ara
Cevapla
#3
@Ethnic bu kodu biraz açıklar mısın?
Ara
Cevapla
#4
(26-01-2019, Saat: 12:27)excel Nickli Kullanıcıdan Alıntı:  @Ethnic bu kodu biraz açıklar mısın?

Tabiki neden olmasın, bu bir kod.
Ara
Cevapla
#5
(26-01-2019, Saat: 14:49)Ethnic Nickli Kullanıcıdan Alıntı:  oha bravo tebrikler






Ben biraz açıklıyım  Big Grin 

PHP Kod:
from kivy.app import App
from kivy
.lang import Builder
from kivy
.uix.boxlayout import BoxLayout
from kivy
.clock import Clock
from kivy
.properties import NumericProperty
Builder
.load_string("""
<main2>:
    orientation: 'vertical'
    Label:
        id: label
        font_size: 25
        text: '0'
    BoxLayout:
        Button:
            text: 'ARTTİR'
            on_release: root.durdur()    #release ile bırakınca durdur fonksiyonu calistiriyor.
            on_press: root.sayac()      #press ile ilk tıklamada sayac fonksiyonunu calıstırmaya baslıyor.
        Button:
            text: 'AZALT'
            on_release: root.durdur2()    
            on_press: root.sayac_azalt()           
    
"""
)
class 
main2(BoxLayout):
    
sayi NumericProperty(0)

    
def sayac(self):
        
Clock.schedule_interval(self.arttir,.05 #saniyenin yarısı kadar arttir fonksiyonunu cagırıyor.

    
def arttir(selfp):
        
self.sayi += 1    #sayı degıskenını +1 arttiriyor.
        
self.ids.label.text str(self.sayi)    #arttirilen degisken degerini ekrana int den str cevirip ekrana basıyor.
        
    
def durdur(self):
        
Clock.unschedule(self.arttir)    #burda her yarım sayniyede cagrilan fonksiyonu durduruyor



    
def sayac_azalt(self):
        
Clock.schedule_interval(self.azalt,.05)

    
def azalt(selfp):
        if 
self.sayi == 0:
            
pass
        
else:
            
self.sayi -= 1
            self
.ids.label.text str(self.sayi)

    
def durdur2(self):
        
Clock.unschedule(self.azalt)

class 
main(App):
 
   def build(self):
 
       return main2()

if 
__name__ == '__main__':
    
main().run() 
Ara
Cevapla

{lang: 'en'}


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Kivy Dili Soru & Cevap Ethnic 215 137,456 28-04-2020, Saat: 12:11
Son Yorum: SD-16
  Kivy de basit animsyonlar nasıl oluşturulur SD-16 3 2,817 31-03-2020, Saat: 11:27
Son Yorum: HackLord
  Kivy programını .exe yapmak SD-16 3 3,224 15-04-2019, Saat: 01:20
Son Yorum: gecemor
  Button olusturma SD-16 18 9,967 06-02-2019, Saat: 01:20
Son Yorum: SD-16
  Kivy yazıcı modülü SD-16 1 2,095 27-11-2018, Saat: 22:19
Son Yorum: Ethnic

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme