Python 添加底部导航以在多个屏幕之间滚动

Python 添加底部导航以在多个屏幕之间滚动,python,kivy,Python,Kivy,我正在尝试添加底部导航,以便可以在不同屏幕之间滚动。但是,我不确定在我的kv文件中添加它的位置,因为当我现在添加它时,它会覆盖屏幕的其余部分。当我尝试在其他元素之前添加它时,我得到了错误的无效位置 我的python文件: from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import Screen,ScreenManager from kivy.uix.widget import

我正在尝试添加底部导航,以便可以在不同屏幕之间滚动。但是,我不确定在我的kv文件中添加它的位置,因为当我现在添加它时,它会覆盖屏幕的其余部分。当我尝试在其他元素之前添加它时,我得到了错误的无效位置

我的python文件:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen,ScreenManager
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.core.window import Window
from kivymd.app import MDApp
from kivy.uix.image import Image
from kivy.animation import Animation
from kivy.clock import Clock
from kivy.properties import ColorProperty
from kivy.uix.popup import Popup
from kivy.uix.floatlayout import FloatLayout

Window.clearcolor = (1,1,1,1)
Window.size = (360,600)


kv = Builder.load_file("Editor.kv")

class MainWindow(Screen):
    pass

class SecondWindow(Screen):
    pass

class OutputWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

class EditorApp(MDApp):
    def build(self):
        return WindowManager()


if __name__ == '__main__':
  EditorApp().run()
还有我的文件

#:import utils kivy.utils
<WindowManager>:
    MainWindow:
    SecondWindow:
    OutputWindow:

<MainWindow>
    name:"main"
    FloatLayout:
        size: root.width, root.height
        TextInput:
            id: user_input
            pos_hint:{"x" : 0.05, "top" : 0.9}
            size_hint: 0.9, 0.37
        Label:
            markup: True
            id:input_label
            pos_hint:{"x" : 0, "top":1}
            size_hint: 1 ,0.08
            text: "[font=Roboto] TEST"
            font_size : 32
            bold: True
            canvas.before:
                Color:
                    rgb: utils.get_color_from_hex("01121c")
                Rectangle:
                    size: self.size
                    pos: self.pos
        Button:
            pos_hint:{"top" : 0.51, "x" : 0.05}
            size_hint: (None,None)
            width : 150
            height : 40
            font_size : 23
            text:'Summarize'
            on_release: app.root.current = "output"
        Button:
            pos_hint:{"top":0.47, "x":0.8}
            size_hint: (None,None)
            width : 50
            height : 22
            font_size : 23
            text:'i'
    MDBottomNavigation:
        panel_color: rgba('262626')
        MDBottomNavigationItem:
            icon: 'home'
            text: 'home'

<SecondWindow>:
    name: "second"
    FloatLayout:
        size: root.width, root.height
        TextInput:
            id: user_input
            pos_hint:{"x" : 0.05, "top" : 0.9}
            size_hint: 0.9, 0.37
        Button:
            pos_hint:{"top":0.42, "x":0.05}
            size_hint: (None,None)
            width : 150
            height : 40
            font_size : 23
            text:'Upload'
        Button:
            pos_hint:{"top":0.47, "x":0.8}
            size_hint: (None,None)
            width : 50
            height : 22
            font_size : 23
            text:'i'

<OutputWindow>:
    name: "output"
    Button:
        text :"Go Back"
        on_release: app.root.current = "main"
:导入utils kivy.utils
:
主窗口:
第二窗口:
输出窗口:
名称:“主要”
浮动布局:
尺寸:根.宽度,根.高度
文本输入:
id:用户输入
pos_提示:{“x”:0.05,“top”:0.9}
尺寸提示:0.9,0.37
标签:
标记:正确
id:输入标签
pos_提示:{“x”:0,“top”:1}
尺寸提示:1,0.08
文本:“[font=Roboto]测试”
字体大小:32
黑体字:对
在以下情况之前:
颜色:
rgb:utils.从十六进制(“01121c”)获取颜色
矩形:
大小:self.size
pos:self.pos
按钮:
pos_提示:{“top”:0.51,“x”:0.05}
大小提示:(无,无)
宽度:150
身高:40
字体大小:23
正文:“概述”
发布时:app.root.current=“输出”
按钮:
pos_提示:{“top”:0.47,“x”:0.8}
大小提示:(无,无)
宽度:50
身高:22
字体大小:23
正文:“我”
MDB导航:
面板颜色:rgba('262626')
MDBottomNavigationItem:
图标:“家”
文字:“家”
:
姓名:“第二”
浮动布局:
尺寸:根.宽度,根.高度
文本输入:
id:用户输入
pos_提示:{“x”:0.05,“top”:0.9}
尺寸提示:0.9,0.37
按钮:
pos_提示:{“top”:0.42,“x”:0.05}
大小提示:(无,无)
宽度:150
身高:40
字体大小:23
文字:'上传'
按钮:
pos_提示:{“top”:0.47,“x”:0.8}
大小提示:(无,无)
宽度:50
身高:22
字体大小:23
正文:“我”
:
名称:“输出”
按钮:
文本:“返回”
发布时:app.root.current=“main”
我希望导航栏出现在所有三个窗口中,这样我就可以在它们之间滚动。
谢谢。

底部导航的诀窍在于,它本身就是一个屏幕管理器。在Kotlin中,您将使用片段进行此操作

我已经更正了您的代码,使其按您的预期方式运行。如果你还有任何问题,请告诉我

main.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen,ScreenManager
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.core.window import Window
from kivymd.app import MDApp
from kivy.uix.image import Image
from kivy.animation import Animation
from kivy.clock import Clock
from kivy.properties import ColorProperty
from kivy.uix.popup import Popup
from kivy.uix.floatlayout import FloatLayout

Window.clearcolor = (1,1,1,1)
Window.size = (360,600)


class MainWindow(Screen):
    pass

class SecondWindow(Screen):
    pass

class OutputWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass


class EditorApp(MDApp):
    def build(self):
        kv = Builder.load_file("main.kv")
        return WindowManager()


if __name__ == '__main__':
  EditorApp().run()
主电压(千伏)

#:import utils kivy.utils
<WindowManager>:
    MainWindow:

<MainWindow>
    BoxLayout:
        orientation:'vertical'

        MDBottomNavigation:
            panel_color: .2, .2, .2, 1

            MDBottomNavigationItem:
                name: 'main'
                text: 'main'
                icon: 'account-circle'

                FloatLayout:
                    size: root.width, root.height
                    TextInput:
                        id: user_input
                        pos_hint:{"x" : 0.05, "top" : 0.9}
                        size_hint: 0.9, 0.37
                    Label:
                        markup: True
                        id:input_label
                        pos_hint:{"x" : 0, "top":1}
                        size_hint: 1 ,0.08
                        text: "[font=Roboto] TEST"
                        font_size : 32
                        bold: True
                        canvas.before:
                            Color:
                                rgb: utils.get_color_from_hex("01121c")
                            Rectangle:
                                size: self.size
                                pos: self.pos
                    Button:
                        pos_hint:{"top" : 0.51, "x" : 0.05}
                        size_hint: (None,None)
                        width : 150
                        height : 40
                        font_size : 23
                        text:'Summarize'
                        on_release: app.root.current = "output"
                    Button:
                        pos_hint:{"top":0.47, "x":0.8}
                        size_hint: (None,None)
                        width : 50
                        height : 22
                        font_size : 23
                        text:'i'

            MDBottomNavigationItem:
                name: 'second'
                text: 'second'
                icon: 'account-circle'

                FloatLayout:
                    size: root.width, root.height
                    TextInput:
                        id: user_input
                        pos_hint:{"x" : 0.05, "top" : 0.9}
                        size_hint: 0.9, 0.37
                    Button:
                        pos_hint:{"top":0.42, "x":0.05}
                        size_hint: (None,None)
                        width : 150
                        height : 40
                        font_size : 23
                        text:'Upload'
                    Button:
                        pos_hint:{"top":0.47, "x":0.8}
                        size_hint: (None,None)
                        width : 50
                        height : 22
                        font_size : 23
                        text:'i'

            MDBottomNavigationItem:
                name: 'output'
                text: 'output'
                icon: 'account-circle'

                Button:
                    text :"Go Back"
                    on_release: app.root.current = "main"
:导入utils kivy.utils
:
主窗口:
盒子布局:
方向:'垂直'
MDB导航:
面板颜色:.2、.2、.2、1
MDBottomNavigationItem:
名称:'main'
文本:“主要”
图标:“账户圈”
浮动布局:
尺寸:根.宽度,根.高度
文本输入:
id:用户输入
pos_提示:{“x”:0.05,“top”:0.9}
尺寸提示:0.9,0.37
标签:
标记:正确
id:输入标签
pos_提示:{“x”:0,“top”:1}
尺寸提示:1,0.08
文本:“[font=Roboto]测试”
字体大小:32
黑体字:对
在以下情况之前:
颜色:
rgb:utils.从十六进制(“01121c”)获取颜色
矩形:
大小:self.size
pos:self.pos
按钮:
pos_提示:{“top”:0.51,“x”:0.05}
大小提示:(无,无)
宽度:150
身高:40
字体大小:23
正文:“概述”
发布时:app.root.current=“输出”
按钮:
pos_提示:{“top”:0.47,“x”:0.8}
大小提示:(无,无)
宽度:50
身高:22
字体大小:23
正文:“我”
MDBottomNavigationItem:
姓名:“第二”
文本:“第二”
图标:“账户圈”
浮动布局:
尺寸:根.宽度,根.高度
文本输入:
id:用户输入
pos_提示:{“x”:0.05,“top”:0.9}
尺寸提示:0.9,0.37
按钮:
pos_提示:{“top”:0.42,“x”:0.05}
大小提示:(无,无)
宽度:150
身高:40
字体大小:23
文字:'上传'
按钮:
pos_提示:{“top”:0.47,“x”:0.8}
大小提示:(无,无)
宽度:50
身高:22
字体大小:23
正文:“我”
MDBottomNavigationItem:
名称:“输出”
文本:“输出”
图标:“账户圈”
按钮:
文本:“返回”
发布时:app.root.current=“main”

祝你今天愉快

你好,NameKhan72,非常感谢你的帮助。你能告诉我如何改变导航栏的不透明度吗?我尝试过改变面板颜色中的1,但没有成功