如何在kivy python中使用滚动条
有人能告诉我如何在这段代码中使用滚动条吗?第二,有没有办法将标签和TextInput对齐,使TextInput中的文本无论有多少输入都清晰可见。此处对齐的意思是:如果有100个(数百或数千个)文本输入,则文本输入中的文本应正确可见。实际上,当我在代码中输入一些(间距=50)时,在输入大约20秒后,文本无法正常显示。 提前谢谢如何在kivy python中使用滚动条,python,user-interface,scrollview,kivy,Python,User Interface,Scrollview,Kivy,有人能告诉我如何在这段代码中使用滚动条吗?第二,有没有办法将标签和TextInput对齐,使TextInput中的文本无论有多少输入都清晰可见。此处对齐的意思是:如果有100个(数百或数千个)文本输入,则文本输入中的文本应正确可见。实际上,当我在代码中输入一些(间距=50)时,在输入大约20秒后,文本无法正常显示。 提前谢谢 from kivy.app import App from kivy.uix.tabbedpanel import TabbedPanel from kivy.uix.bo
from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.uix.textinput import TextInput
from kivy.uix.checkbox import CheckBox
from kivy.lang import Builder
ROWS = ['Goc', 'COC', 'EEE', 'abs' , 'kju' , 'iop' , 'nmg', 'gty', 'jkio', 'dbkgcd' , 'udbcbjkb']
Builder.load_string("""
<Test>:
do_default_tab: False
TabbedPanelItem:
text: 'page1'
Table:
padding: 50, 50, 50, 50
orientation: 'vertical'
<Row>:
spacing: 50
size_hint_x: 1
txt: txtinpt.text
Label:
text: root.txt
TextInput:
id: txtinpt
text: root.txt
disabled: not CheckBox.active
CheckBox:
id:CheckBox
text: 'CheckBox'
active: False
Button:
text: 'save'
""")
class Table(BoxLayout):
def __init__(self, **kwargs):
super(Table, self).__init__(**kwargs)
for row in ROWS:
self.add_widget(Row(row))
class Row(BoxLayout):
txt = StringProperty()
def __init__(self, row, **kwargs):
super(Row, self).__init__(**kwargs)
self.txt = row
class Test(TabbedPanel):
pass
class MyApp(App):
def build(self):
test = Test()
return test
if __name__ == '__main__':
MyApp().run()
从kivy.app导入应用
从kivy.uix.tabbedpanel导入tabbedpanel
从kivy.uix.boxlayout导入boxlayout
从kivy.properties导入StringProperty
从kivy.uix.textinput导入textinput
从kivy.uix.checkbox导入复选框
从kivy.lang导入生成器
行=['Goc'、'COC'、'EEE'、'abs'、'kju'、'iop'、'nmg'、'gty'、'jkio'、'dbkgcd'、'udbcbjkb']
生成器。加载\u字符串(“”)
:
do_default_选项卡:False
选项卡式面板项目:
文本:“第1页”
表:
填充:50,50,50,50
方向:“垂直”
:
间距:50
大小提示:1
txt:txtinpt.text
标签:
文本:root.txt
文本输入:
id:txtinpt
文本:root.txt
已禁用:未选中复选框。活动
复选框:
id:复选框
文本:“复选框”
活动:错误
按钮:
文本:“保存”
""")
课程表(BoxLayout):
定义初始(自我,**kwargs):
超级(表,自).\uuuu初始化(**kwargs)
对于行中的行:
self.add_小部件(行)
类行(BoxLayout):
txt=StringProperty()
定义初始值(self,row,**kwargs):
超级(行,自).\uuuu初始值(**kwargs)
self.txt=行
类别测试(选项卡式面板):
通过
类别MyApp(应用程序):
def生成(自):
测试=测试()
回归试验
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
以下步骤是:
选项卡面板项中添加滚动视图
,并将表格
放入其中
size\u hint\u y=None
防止boxlayout(Table
)自动调整其高度以适应其父窗口小部件的高度行
高度from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.uix.textinput import TextInput
from kivy.uix.checkbox import CheckBox
from kivy.lang import Builder
ROWS = ['Goc', 'COC', 'EEE', 'abs' , 'kju' , 'iop' , 'nmg', 'gty', 'jkio', 'dbkgcd' , 'udbcbjkb']
Builder.load_string("""
<Test>:
do_default_tab: False
TabbedPanelItem:
text: 'page1'
ScrollView:
Table:
orientation: "vertical"
size_hint_y: None
height: self.minimum_height
padding: 50, 50, 50, 50
<Row>:
spacing: 50
size_hint_y: None
size_hint_x: 1
height: 100
txt: txtinpt.text
Label:
text: root.txt
TextInput:
id: txtinpt
text: root.txt
disabled: not CheckBox.active
CheckBox:
id:CheckBox
text: 'CheckBox'
active: False
Button:
text: 'save'
""")
class Table(BoxLayout):
def __init__(self, **kwargs):
super(Table, self).__init__(**kwargs)
for row in ROWS:
self.add_widget(Row(row))
class Row(BoxLayout):
txt = StringProperty()
def __init__(self, row, **kwargs):
super(Row, self).__init__(**kwargs)
self.txt = row
class Test(TabbedPanel):
pass
class MyApp(App):
def build(self):
test = Test()
return test
if __name__ == '__main__':
MyApp().run()
从kivy.app导入应用
从kivy.uix.tabbedpanel导入tabbedpanel
从kivy.uix.boxlayout导入boxlayout
从kivy.properties导入StringProperty
从kivy.uix.textinput导入textinput
从kivy.uix.checkbox导入复选框
从kivy.lang导入生成器
行=['Goc'、'COC'、'EEE'、'abs'、'kju'、'iop'、'nmg'、'gty'、'jkio'、'dbkgcd'、'udbcbjkb']
生成器。加载\u字符串(“”)
:
do_default_选项卡:False
选项卡式面板项目:
文本:“第1页”
滚动视图:
表:
方向:“垂直”
尺寸提示:无
高度:自身最小高度
填充:50,50,50,50
:
间距:50
尺寸提示:无
大小提示:1
身高:100
txt:txtinpt.text
标签:
文本:root.txt
文本输入:
id:txtinpt
文本:root.txt
已禁用:未选中复选框。活动
复选框:
id:复选框
文本:“复选框”
活动:错误
按钮:
文本:“保存”
""")
课程表(BoxLayout):
定义初始(自我,**kwargs):
超级(表,自).\uuuu初始化(**kwargs)
对于行中的行:
self.add_小部件(行)
类行(BoxLayout):
txt=StringProperty()
定义初始值(self,row,**kwargs):
超级(行,自).\uuuu初始值(**kwargs)
self.txt=行
类别测试(选项卡式面板):
通过
类别MyApp(应用程序):
def生成(自):
测试=测试()
回归试验
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
注意:修改仅影响kv文件
输出:
添加滚动视图很简单,但我不确定“对齐标签和文本输入”是什么意思,你能用一个示例或图像来说明你想要什么吗?亲爱的@FJSevilla,将有数百或数千行,因此我们应该通过滚动查看输入。对于数百或数千行,你想使用RecycleView,不要创建所有的小部件,否则您的软件肯定会非常慢。