2016-12-01 9 views
1

ScrollViewでチェックボックスが機能しない理由がわかりません。次のコードと.kvファイルでは、ScrollViewを削除しない限り、チェックボックスをクリックできません。ScrollViewでKivyチェックボックスが機能しない

from kivy.app import App 
from kivy.uix.screenmanager import (ScreenManager, Screen) 
from kivy.uix.scrollview import ScrollView 


class MainManager(ScreenManager): 
    pass 

class Scrolling(ScrollView): 
    pass 

class LoginScreen(Screen): 
    pass 

class QuestionApp(App): 
    def build(self): 
     AppSM = MainManager() 
     AppSM.add_widget(LoginScreen(name='login')) 
     return AppSM 

if __name__ == '__main__': 
    QuestionApp().run() 

と.kvファイル

<LoginScreen>: 
    Scrolling: 
     GridLayout: 
      cols: 1 
      padding: 15 
      spacing: 50 
      size_hint_y: None 
      height: self.minimum_height 
      Button: 
       size_hint_y: None 
       height: '200sp' 
      BoxLayout: 
       orientation: 'horizontal' 
       CheckBox: 
        active: False 
       CheckBox: 
        active: True 
<Scrolling>: 
    do_scroll_x: False 
    bar_margin: 0 
    bar_width: 15 
    bar_color: [.7,.7,.7,.9] 
    bar_inactive_color: [.7,.7,.7,.9] 
    scroll_type: ['bars','content'] 

私はスクロールを削除する、次のように<LoginScreen>:を変更する場合は、チェックボックスがうまく動作:

<LoginScreen>: 
    GridLayout: 
     cols: 1 
     padding: 15 
     spacing: 50 
     Button: 
      size_hint_y: None 
      height: '200sp' 
     BoxLayout: 
      orientation: 'horizontal' 
      CheckBox: 
       active: False 
      CheckBox: 
       active: True 

答えて

1

はこれにあなたのkvファイルを変更します。

BoxLayout: 
    size_hint_y: None 
    height: 200 
    orientation: 'horizontal' 
    CheckBox: 
     active: False 
    CheckBox: 
     active: True 

CheckBox仕事(少なくとも私にとって)。その理由は、明らかに高さが明記されているためです。を設定すると、GridLayoutが予想しています。

+0

これは機能しました。私はGridLayoutのself.minimum_heightがレイアウト自体の合計サイズであると仮定したので、ちょっと混乱していました。各要素を格納する必要があり、各要素は最小限のデフォルトサイズを占める必要がありましたが、他のウィジェットとは異なり、ボタンがデフォルトのサイズになっています。 – Daniel

+1

@Daniel 'Widget'クラス - >' [100,100] 'から継承する他のウィジェットと同じように、実際にはデフォルトサイズを持っていますが、問題は' size_hint'が優先順位が高いことです。 'size_hint_y:None'でもそうです。 – KeyWeeUsr

関連する問題