我有一个函数(如下所示),我使用弹出窗口和TextInput来显示一些文本,在大多数情况下,文本内容比弹出窗口大,因此需要滚动。没有ScrollView我需要依靠键盘箭头键进行滚动,我尝试实现ScrollView,以便我可以使用鼠标滚轮滚动。但问题是它似乎没有效果,任何想法都是为什么?
def dispPopup(display_text):
root = ScrollView(size_hint=(0.8, 0.5))
root.add_widget(TextInput(text= display_text, , size_hint=(0.8, 0.5)))
popup = Popup(title='Search Result',
content= root, size_hint=(0.8, 1), pos_hint={'right': 1})
popup.open()
由于
答案 0 :(得分:5)
ScrollView只会在有滚动的内容时滚动。
您正在向ScrollView添加Textinput,但将Textinput的size_hint设置为.8,.5(80%宽度和50%高度的父级,即ScrollView)。所以没有什么可以滚动的。
要垂直滚动,您应该将TextInput的宽度设置为其父ScrollView的宽度,并且高度应设置为更大的值,ScrollView的高度或行数* line_height。
in kv ::
ScrollView:
id: scrlv
TextInput:
text: disp_text
size_hint: 1, None
height: max( (len(self._lines)+1) * self.line_height, scrlv.height)
TextInput将根据其中的行数或者滚动视图高度或字体大小/样式垂直动态增长,这会改变line_height
。
更新::
从1.8.0开始,您只需执行::
height: max(self.minimum_height, scrlv.height)