Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kivy Label yardım
#1
Exclamation 
PHP Kod:
SonScreen:
 
       name:"sonucs"
 
       BoxLayout:
 
           orientation:"vertical"
 
           size_hint_x:1
            size_hint_y
:5
        Label
:
 
           text:"Deneme" 
PHP Kod:
class SonScreen(Screen):
 
     def on_enter():
          
a=25 

Merhaba lableın textini a değişkeni ile değiştirmek istiyorum yardımcı olabilirmisiniz.
Ara
Cevapla
#2
Screenmanager mi kullaniyorsun? Eger öyleyse ben sırf bu ekranlar arasındaki bağlantıyı adamakıllı kuramadığım için uygulamalarımda tek class kullanıyorum. Tek ekran bana daha kolay geliyor, yeni bir ekran (screen) açmak yerine bir widget oluşturup pozisyonunu -1 olarak ayarlıyorum, sonra animation ile o widgeti çağırıyorum ama yanlış hatırlamıyorsam gecemor Kivy Proxy uygulamasında screenmanager kullanmıştı. O gelince yardımcı olabilir, fakat yinede böyle üstünkörü bir örnek ile olmaz, kodun tamamını yapıştırsan daha iyi olur..
Ara
Cevapla
#3
Evet ScreenManager kullanmıştım ama tabi aradaki iletişimler biraz kafa karıştırabiliyor bazen ama bu örnekte aslında pek karışık bi durum yok Smile Verdiğin kodlar her nekadar kısıtlı olsa da ben yine de anlatmaya çalışayım.

şimdi ilk olarak "kv" dosyasında veya "builder string" içinde labele öncelikle id vermelisin. Mesela id Adı "MyLabel" olsun

PHP Kod:
SonScreen:
        
name:"sonucs"
        
BoxLayout:
            
orientation:"vertical"
            
size_hint_x:1
            size_hint_y
:5
        Label
:
            
idMyLabel
            text
:"Deneme" 

Daha sonra main.py içindeki ilgili screen sınıfında şu şekilde değiştirme yapabilirsin.

self.ids.MyLabel.text = "Yeni Metin"

kodlara dökeccek olursak

PHP Kod:
class SonScreen(Screen):
      
def on_enter():
          
self.ids.MyLabel.text "Yeni Metin" 
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla
#4
(10-02-2018, Saat: 22:37)gecemor Nickli Kullanıcıdan Alıntı:  Evet ScreenManager kullanmıştım ama tabi aradaki iletişimler biraz kafa karıştırabiliyor bazen ama bu örnekte aslında pek karışık bi durum yok Smile Verdiğin kodlar her nekadar kısıtlı olsa da ben yine de anlatmaya çalışayım.

şimdi ilk olarak "kv" dosyasında veya "builder string" içinde labele öncelikle id vermelisin. Mesela id Adı "MyLabel" olsun

PHP Kod:
SonScreen:
 
       name:"sonucs"
 
       BoxLayout:
 
           orientation:"vertical"
 
           size_hint_x:1
            size_hint_y
:5
        Label
:
 
           idMyLabel
            text
:"Deneme" 

Daha sonra main.py içindeki ilgili screen sınıfında şu şekilde değiştirme yapabilirsin.

self.ids.MyLabel.text = "Yeni Metin"

kodlara dökeccek olursak

PHP Kod:
class SonScreen(Screen):
 
     def on_enter():
 
         self.ids.MyLabel.text "Yeni Metin" 
Dediğiniz gibi yaptığımda aşağıdaki hatayı aldım
AttributeError: 'super' object has no attribute '__getattr__'
Ara
Cevapla
#5
Biliyor musun bilmiyorum ama sınıflarda genelde "__init__" fonksiyonu olur. Bu fonksiyon sınıfta genel olarak tanımlanacak değişkenleri kaydetmede işe yarar, yani ilgili sınıf çalıştığında ilk olarak init fonksiyonu otomatik olarak çalışır.

"SonScreen" diye adlandırdığın sınıfta aşağıdaki gibi fonksiyon oluşturmak gerekebiliyor.

PHP Kod:
def __init__(self, **kwargs):
    
super(SonScreenself).__init__(**kwargs
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla

{lang: 'en'}


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Kivy Dili Soru & Cevap Ethnic 212 98,505 Bugün, Saat: 08:22
Son Yorum: HackLord
  Kivy de basit animsyonlar nasıl oluşturulur SD-16 3 1,326 Dün, Saat: 11:27
Son Yorum: HackLord
  Kivy programını .exe yapmak SD-16 3 1,124 15-04-2019, Saat: 01:20
Son Yorum: gecemor
  Kivy button SD-16 4 1,437 26-01-2019, Saat: 22:33
Son Yorum: SD-16
  Kivy yazıcı modülü SD-16 1 1,098 27-11-2018, Saat: 22:19
Son Yorum: Ethnic

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme