2016-10-23 40 views
1

分散しているウィジェットのサイズを変更するには、kivyスキャッタを使用します。そこでfloatlayoutに含まれているscatterに含まれるbox_totalを作成しました。kivyスキャッタでウィジェットのサイズを変更

これはコードです:

from kivy.app import App 

from kivy.uix.scatter import Scatter 
from kivy.uix.label import Label 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.boxlayout import BoxLayout 
from kivy.uix.button import Button 

class TutorialApp(App): 
    def build(self): 
     b = BoxLayout(orientation='vertical') 
     button = Button(text = 'something') 
     b.add_widget(button) 


     box_labels = BoxLayout(orientation = 'horizontal') 
     label1 = Label(text = 'hello') 
     box_labels.add_widget(label1) 
     label2 = Label(text = 'world') 
     box_labels.add_widget(label2) 

     box_buttons = BoxLayout(orientation = 'horizontal') 
     button1 = Button(text = 'hello') 
     box_buttons.add_widget(button1) 
     button2 = Button(text = 'world') 
     box_buttons.add_widget(button2) 

     box_total = BoxLayout(orientation = 'vertical') 
     box_total.add_widget(box_labels) 
     box_total.add_widget(box_buttons) 


     f = FloatLayout() 
     s = Scatter() 
     f.add_widget(s)   
     s.add_widget(box_total) 
     b.add_widget(f) 

     return b 

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

、これは私が得るものです:

enter image description here

私は全体FloatLayout面積を占有するために、内側のウィジェットbox_totalのサイズを変更できますか? (ウィンドウの下半分)

答えて

1

Scatterはレイアウトではないため、ここでの位置の自動設定は機能しません。 を使用すると、ScatterFloatLayoutのように動作します。

from kivy.uix.scatterlayout import ScatterLayout 
ScatterLayout() 

それともFloatLayout内部ウィジェットの位置を設定すると、手動でそれを行うことができますが、最初size_hint=(None, None)を行う必要があります覚えておいてください。

関連する問題