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
これは機能しました。私はGridLayoutのself.minimum_heightがレイアウト自体の合計サイズであると仮定したので、ちょっと混乱していました。各要素を格納する必要があり、各要素は最小限のデフォルトサイズを占める必要がありましたが、他のウィジェットとは異なり、ボタンがデフォルトのサイズになっています。 – Daniel
@Daniel 'Widget'クラス - >' [100,100] 'から継承する他のウィジェットと同じように、実際にはデフォルトサイズを持っていますが、問題は' size_hint'が優先順位が高いことです。 'size_hint_y:None'でもそうです。 – KeyWeeUsr