Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python kivy中创建可滚动的FloatLayout_Python_Kivy_Scrollview - Fatal编程技术网

如何在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()

当您将代码作为打印屏幕提供时,我们无法帮助您并尝试您的代码。而不是在你的问题中。为了做到这一点,你确实有可能回答你自己的问题,我做到了。我希望你能帮助我