Kivy - 结合两种不同的浮动布局并对齐浮动按钮

问题描述

我正在尝试构建一个带有树视图的应用程序。我能够组合两个浮动布局,但无法正确对齐它们。如果有人可以查看代码并让我知道我做错了什么,我将不胜感激。 在下面的代码中,您会发现“学生搜索”、树视图位于顶部。我想把它放在“Class 1”按钮下面。 任何帮助将不胜感激!

Main.py 代码

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.core.image import Image as CoreImage
from kivy.uix.treeview import TreeViewLabel,TreeView



def populate_tree_view(tree_view,parent,node):
    if parent is None:
        tree_node = tree_view.add_node(TreeViewLabel(text=node['node_id'],is_open=False))
    else:
        tree_node = tree_view.add_node(TreeViewLabel(text=node['node_id'],is_open=False),parent)

    for child_node in node['children']:
        populate_tree_view(tree_view,tree_node,child_node)

tree = {'node_id': 'Student Search','children':[{'node_id':'Number 1 ABC','children':[]},{'node_id':'Number 2 XYZ',{'node_id':'Number 4 IJK','children':[]}]}
class TreeWidget(FloatLayout):
    def __init__(self,**kwargs):
        super(TreeWidget,self).__init__(**kwargs)

        tv = TreeView(root_options=dict(text='Users'),hide_root=True,indent_level=10)

        populate_tree_view(tv,None,tree)

        self.add_widget(tv)
        

class MainLayout(FloatLayout):
    
    pass
    

class HomePageApp(App):
    def build(self):
        return MainLayout()
   

if __name__ == '__main__':
    HomePageApp().run()

这里是kv文件

################# this button will be used for float layout #############################
#<logoButton@Button>: 
#   size_hint: .1,0.1
#   background_normal: 'logo.jpg'
#   background_down: 'logo.jpg'
<Button@Button>: 
    font_size: 15
    color: 1,1,1
    
    size_hint: 0.32,0.07
<Page@Button>: 
    font_size: 25
    background_color: 0,0
    color: 1,1
    size_hint: .96,0.1
<TreeWidget>:
    font_size: 40

##########################################################################################
<MainLayout>:
    treetest: treeview
    Button:
        text:"Class 1"
        
        pos_hint: {'x': 0.025,'y':.8}
    Button:
        text:"Class 2"
        pos_hint: {'x': 0.345,'y':.8}
    Button:
        text:"Class 3"
        pos_hint: {'x': 0.665,'y':.8}  
    Page:
        text:"Home Page"
        pos_hint: {'x': 0.025,'y':.9}
    #logoButton:
    #   pos_hint: {'x': 0.025,'y':.9}

    
    
    TreeWidget:
        id:treeview
        pos_hint: {'x': 0,'y':0}
        ```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)