首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kivy Toggle Button

Kivy Toggle Button
EN

Stack Overflow用户
提问于 2017-04-28 14:58:05
回答 1查看 2.3K关注 0票数 1

根据Kivy 文档。“切换按钮也可以分组以生成单选按钮--一个组中只有一个按钮可以处于‘倒’状态。”

是否有可能让一个按钮使用切换按钮,并使用屏幕管理器来回更改屏幕?

代码语言:javascript
运行
复制
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

root = Builder.load_string('''

BoxLayout:
    orientation: 'vertical'

    BoxLayout:
        orientation: 'horizontal'
        size_hint: (1, .1)
        ToggleButton:
            text: "Settings"
            on_press: _screen_manager.current = 'settings'

    BoxLayout:
        orientation: 'vertical'

        ScreenManager:
            size_hint: 1, .8
            id: _screen_manager
            Screen:
                name: 'game'

            Screen:
                name: 'settings'

                BoxLayout:
                    orientation: 'vertical'
                    size_hint: (1, .1)
                    Button:
                        text: "Back"
                        on_press: _screen_manager.current = 'game'
                BoxLayout:
                    orientation: 'vertical'
 ''')


class MyApp(App):

    def build(self):
        return root

MyApp().run()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 06:07:21

为此,您可以使用on_state方法。

试试这个:

代码语言:javascript
运行
复制
from kivy.app import App
from kivy.lang import Builder


root = Builder.load_string('''

BoxLayout:
    orientation: 'vertical'

    BoxLayout:
        ToggleButton:
            text: "Settings"
            on_state: _screen_manager.current = 'settings' if self.state == 'down' else 'game'

    BoxLayout:
        orientation: 'vertical'

        ScreenManager:
            size_hint: 1, .8
            id: _screen_manager
            Screen:
                name: 'game'
                Label:
                    text: 'Game'

            Screen:
                name: 'settings'
                Label:
                    text: 'Settings' 

''')


class MyApp(App):

    def build(self):
        return root

MyApp().run()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43683227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档