2016-04-11 37 views
0

Hey bu kodu python komut dosyasında aldım ve gayet iyi çalışıyor. KV'ye dönüştürmeyi denedim, böylece uygulamayı uygulamaya koyabiliyorum ama benim denemelerim başarısızlıktı. :(takip eder ve onu piton 3.4.4 kodlanmış olan gibidir dönüştürmek için gerekli kodu yardım edin şu anda onun bir uygulaması olarak programlanmış ama bir ekran olarak ihtiyaç.Python komut dosyasını bir ekran olarak KV langauge olarak dönüştürün (Kivy)

if __name__ == '__main__': 
    from kivy.app import App 
    from kivy.uix.scrollview import ScrollView 
    from kivy.uix.gridlayout import GridLayout 
    from kivy.uix.button import Button 

    class ScrollViewApp(App): 

     def build(self): 
      layout1 = GridLayout(cols=6, spacing=10, size_hint=(None, None)) 
      layout1.bind(minimum_height=layout1.setter('height'), 
         minimum_width=layout1.setter('width')) 
      for i in range(200): 
       btn = Button(text='student'+str(i), size_hint=(None, None), 
          size=(200, 100)) 
       layout1.add_widget(btn) 
      scrollview1 = ScrollView(bar_width='10dp') 
      scrollview1.add_widget(layout1) 
      root = GridLayout(cols=1) 
      root.add_widget(scrollview1) 
      return root 

    ScrollViewApp().run() 

birisi yardımcı olabilir çok iddialıyım, çok iyi bir zamandan beri takıldım. Çok teşekkür ederim!

cevap

1

Bazı şeyler ekledim, böylece yeni bir şeyler öğrenebilirsin. herhangi vardır İşte buyurun ...

main.py.

#!/usr/bin/env python2 
# -*- coding: utf-8 -*- 
from kivy.app import App 
from kivy.uix.screenmanager import Screen 
from kivy.uix.button import Button 
from kivy.properties import ObjectProperty 
from kivy.clock import mainthread 


class StudentsScreen(Screen): 

    grid = ObjectProperty() 

    def __init__(self, **kwargs): 
     super(StudentsScreen, self).__init__(**kwargs) 
     self.create_buttons() 

    @mainthread # slight delay 
    def create_buttons(self): 
     for i in xrange(200): 
      button = StudentButton(text='student %s' % i) 
      self.grid.add_widget(button) 


class StudentButton(Button): 
    pass 


class Test(App): 
    pass 

if __name__ == "__main__": 
    Test().run() 

test.kv:

ScreenManager: 

    StudentsScreen: 
     grid: grid 

     ScrollView: 
      bar_width: '10dp' 

      GridLayout: 
       id: grid 
       size_hint: None, None 
       size: self.minimum_width, self.minimum_height 
       cols: 6 
       spacing: dp(10) 


<StudentButton>: 
    size_hint: None, None 
    size: '200dp', '100dp' 
+0

hey, teşekkür bana yardım ettiğin için, ben bu yüzden ekranın üst kısmındaki boşluk biraz var kaydırma ekran abit boyutunu değiştiren i Bir menü çubuğu olarak kullanmayı düşünmüyorum, bunun için nasıl gidebileceğime dair herhangi bir fikir var mı? @jilgeza – Abul

+0

@Abul ActionBar widget'ını kullanabilirsiniz. Dokümanlar sayfasının kapalı olduğunu görüyorum, ancak "kivy/uix" kataloğuna gidip "actionbar.py" yi çalıştırırsanız, bir gösteri göreceksiniz. – jligeza

+0

Teşekkür ederim, ben başka bir sorun var, her zaman ben ekranından geri dönmek ve (aynı ana döngüde) girmek, bu düğmelerden başka bir set yapacak. Bunu nasıl yapmaz? – Abul