+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用add_widget创建多屏布局?

发布于2021-03-04 22:19     阅读(496)     评论(0)     点赞(29)     收藏(0)


0

1

2

3

4

5

6

7

下面的.py和.kv文件创建一个简单的两屏幕布局。但是,我不知道如何使用add.widget实现相同的功能。如果我更换

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

经过

kv = WindowManager()
kv.add_widget(MainWindow(name='main'))
kv.add_widget(SecondWindow(name='second'))

该代码仍然运行,但是任何尝试添加按钮的尝试,例如kv.add_widget.main(Button(text ='dsd'))都会使代码崩溃。

我还要欣赏一个示例,其中部分通过使用.kv文件创建,部分通过add.widget创建布局。

Python:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.popup import Popup
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

class MainWindow(Screen):
    pass

class SecondWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

kv = Builder.load_file("simplemultiscreen.kv")
        
class MyMainApp(App):
    def build(self):
        return kv
         
if __name__ == '__main__':
    MyMainApp().run()


Kivy:

WindowManager:    
    MainWindow:
    SecondWindow:
       
<MainWindow>:
    name: "main"
        
    Button:
        text: "Go Second"
        size_hint: 0.1, 0.1
        pos_hint: {"x":0.9, "y":0.9}        
        on_release: 
            app.root.current = "second"
            root.manager.transition.direction = "left"
                        
<SecondWindow>:
    name: "second"
            
    Button:
        text: "Go Main"
        size_hint: 0.1, 0.1
        pos_hint: {"x":0.0, "y":0.9}  
        on_release: 
            app.root.current = "main"
            root.manager.transition.direction = "right"

解决方案


暂无回答

0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/878032/754f8d5527d100050555/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)