如何在python kivy中创建可滚动的FloatLayout
我正在为玩家帐户列表创建搜索菜单。如何在python kivy中创建可滚动的FloatLayout,python,kivy,scrollview,Python,Kivy,Scrollview,我正在为玩家帐户列表创建搜索菜单。 数据库中的播放器名称应显示在滚动视图中 我尝试用GridLayout或ScrollView来实现这一点,但我想把玩家的昵称放在他的照片旁边,所以我认为,使用FLoatLayout是实现这一点的更好方法 尽管如此,我还是无法使FLoatLayout可滚动 此代码正在运行: class TestApp(App): def build(self): root = BoxLayout(orientation='horizontal', pos=
数据库中的播放器名称应显示在
滚动视图中
我尝试用GridLayout
或ScrollView
来实现这一点,但我想把玩家的昵称放在他的照片旁边,所以我认为,使用FLoatLayout
是实现这一点的更好方法
尽管如此,我还是无法使FLoatLayout
可滚动
此代码正在运行:
class TestApp(App):
def build(self):
root = BoxLayout(orientation='horizontal', pos=(200, 100))
left=ScrollView(size_hint=[None, None], size=(194, 334))
leftGrid = GridLayout(cols=1, size_hint_y=None,padding=20)
leftGrid.bind(minimum_height=leftGrid.setter('height'))
for x in range (34):
self.image = Image(
source='other_nick.gif', pos=(0, 0),height=30,size_hint_y=None,)
label = Label(
text='hello world', pos=(-15, 20), height=30,size_hint_y=None,)
leftGrid.add_widget(self.image)
leftGrid.add_widget(label)
left.add_widget(leftGrid)
root.add_widget(left)
return root
if __name__ == "__main__":
TestApp().run()
但这不是我想要的,因为它将文本放置在图像旁边,但浮动布局
不可滚动:
class TestApp(App):
def build(self):
root = BoxLayout(orientation='horizontal', pos=(200, 100))
left=ScrollView(size_hint=[None, None], size=(194, 334))
fl = FloatLayout(size_hint_y=None)
y = 50
for x in range (34):
self.image = Image(
source='other_nick.gif', pos(0,y),height=30,size_hint_y=None,)
label = Label(
text='hello world', pos=(-15, y), height=30,size_hint_y=None,)
fl.add_widget(self.image)
fl.add_widget(label)
y -= 30
left.add_widget(fl)
root.add_widget(left)
return root
if __name__ == "__main__":
TestApp().run()
我想你的第一次尝试比第二次更接近。我已将标签和图像封装在boxlayout中。其余的不变
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.image import Image
from kivy.uix.label import Label
class TestApp(App):
def build(self):
root = BoxLayout(orientation='horizontal', pos=(200, 100))
left=ScrollView(size_hint=[None, None], size=(194, 334))
leftGrid = GridLayout(cols=1, size_hint_y=None,padding=20)
leftGrid.bind(minimum_height=leftGrid.setter('height'))
for x in range (34):
image = Image(
source='other_nick.gif', pos=(0, 0),height=30,size_hint_y=None,)
label = Label(
text='hello w. ' + str(x), pos=(-15, 20), height=30,size_hint_y=None,)
box = BoxLayout(orientation="horizontal", height=40, size_hint_y=None)
box.add_widget(label)
box.add_widget(image)
leftGrid.add_widget(box)
left.add_widget(leftGrid)
root.add_widget(left)
return root
if __name__ == "__main__":
TestApp().run()
当您将代码作为打印屏幕提供时,我们无法帮助您并尝试您的代码。而不是在你的问题中。为了做到这一点,你确实有可能回答你自己的问题,我做到了。我希望你能帮助我