Python 我能';不要滚动我的页面
如何在Python 我能';不要滚动我的页面,python,listview,kivy,Python,Listview,Kivy,如何在滚动视图或列表视图中添加我的小部件以滚动它 我已经写了一段代码,但效果不好,这是我的main.py: from kivy.app import App from kivy.lang import Builder from kivy.uix.boxlayout import BoxLayout from kivy.uix.scrollview import ScrollView from random import random class chat_history(Box
滚动视图
或列表视图
中添加我的小部件以滚动它
我已经写了一段代码,但效果不好,这是我的main.py:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.scrollview import ScrollView
from random import random
class chat_history(BoxLayout):
def profile(self):
return random(),random(),random()
Builder.load_file('widg.kv')
class myApp(App ):
def build(self):
x=BoxLayout(orientation='vertical')
s=ScrollView()
for i in range(1,21):
x.add_widget(chat_history(height=50))
s.add_widget(x)
return s
myApp().run()
<chat_history>:
height:100
BoxLayout:
height:50
name:'haha very funny '
size_hint_y:None
id:cv
orientation:'horizontal'
canvas:
Color:
rgb:root.profile()
Ellipse:
pos:root.pos
Label:
text_hint:{'x':0,'y':0.1}
pos:root.pos
size_hint_x:0.7
height:cv.height
text:cv.name
id:lbl
这是我的kv文件:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.scrollview import ScrollView
from random import random
class chat_history(BoxLayout):
def profile(self):
return random(),random(),random()
Builder.load_file('widg.kv')
class myApp(App ):
def build(self):
x=BoxLayout(orientation='vertical')
s=ScrollView()
for i in range(1,21):
x.add_widget(chat_history(height=50))
s.add_widget(x)
return s
myApp().run()
<chat_history>:
height:100
BoxLayout:
height:50
name:'haha very funny '
size_hint_y:None
id:cv
orientation:'horizontal'
canvas:
Color:
rgb:root.profile()
Ellipse:
pos:root.pos
Label:
text_hint:{'x':0,'y':0.1}
pos:root.pos
size_hint_x:0.7
height:cv.height
text:cv.name
id:lbl
:
身高:100
盒子布局:
身高:50
名字:'哈哈,很有趣'
尺寸提示:无
id:cv
方向:'水平'
画布:
颜色:
rgb:root.profile()
椭圆:
pos:root.pos
标签:
文本提示:{'x':0,'y':0.1}
pos:root.pos
大小提示:0.7
高度:cv高度
文本:cv.name
id:lbl
首先,您应该防止布局自动调整其高度以适应其父窗口小部件的高度(size\u hint\u y=None
)
另一方面,请确保高度足够,以便有东西可以滚动。必须明确指定布局高度
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.scrollview import ScrollView
from random import random
kv_text = '''
<chat_history>:
size_hint_y: None
height:100
BoxLayout:
height:50
name:'haha very funny '
size_hint_y:None
id:cv
orientation:'horizontal'
canvas:
Color:
rgb:root.profile()
Ellipse:
pos:root.pos
Label:
text_hint:{'x':0,'y':0.1}
pos:root.pos
size_hint_x:0.7
height:cv.height
text:cv.name
id:lbl
'''
class chat_history(BoxLayout):
def profile(self):
return random(),random(),random()
class myApp(App ):
def build(self):
Builder.load_string(kv_text)
x=BoxLayout(orientation='vertical', size_hint_y=None) #<<<<<<<<<<<
x.bind(minimum_height=x.setter('height')) #<<<<<<<<<<<
s=ScrollView()
for i in range(1,21):
x.add_widget(chat_history(height=50))
s.add_widget(x)
return s
myApp().run()
从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.boxlayout导入boxlayout
从kivy.uix.scrollview导入scrollview
从随机导入随机
kv_文本=“”
:
尺寸提示:无
身高:100
盒子布局:
身高:50
名字:'哈哈,很有趣'
尺寸提示:无
id:cv
方向:'水平'
画布:
颜色:
rgb:root.profile()
椭圆:
pos:root.pos
标签:
文本提示:{'x':0,'y':0.1}
pos:root.pos
大小提示:0.7
高度:cv高度
文本:cv.name
id:lbl
'''
课堂聊天记录(BoxLayout):
def配置文件(自我):
返回random(),random(),random()
类别myApp(应用程序):
def生成(自):
生成器.加载字符串(kv\U文本)
x=BoxLayout(方向=垂直),尺寸\u提示\u y=None)#