Я не могу понять, почему флажки не работают в ScrollView
. Следующий код и .kv-файл не позволяют отмечать флажки, если я не удалю ScrollView
.Kivy checkboxes не работает в ScrollView
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
Это сработало. Немного сбив с толку, поскольку я предположил, что self.minimum_height из GridLayout был для общего размера самого макета, который должен содержать каждый элемент, и что каждый элемент будет занимать как минимум свой размер по умолчанию, - но просматривая документы, кажется, флажки don У меня есть размер по умолчанию, тогда как другие виджеты - поэтому, почему кнопки работали. – Daniel
@ Daniel у них действительно есть размер по умолчанию, как и любой другой виджет, который наследуется от класса Widget -> '[100, 100]', проблема в том, что 'size_hint' имеет более высокий приоритет. Даже 'size_hint_y: None' делает вещь. – KeyWeeUsr