首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kivy弹出还是Eventloop互动?

Kivy弹出还是Eventloop互动?
EN

Stack Overflow用户
提问于 2014-06-08 16:55:06
回答 1查看 186关注 0票数 1

我的应用程序的第一个屏幕上有一个由三个按钮组成的小菜单(在网格布局中)。两个应该打开弹出窗口。一个来帮忙,一个来。第三个屏幕更改为另一个屏幕。

只有一个弹出窗口有效。第一个调用(在kivy文件中)工作,第二个不打开弹出窗口。如果我在cdd.kv中切换订单,那么另一个就可以工作了。

摘录自cdd.kv:

代码语言:javascript
复制
        CDDMainMenuLayout:

            HelpButton:
                size_hint: .5,.5

            MetadataButton:
                size_hint: .5,.5
                on_release: app.root.current = 'metadata'

            AboutButton:
                size_hint: .5,.5

摘录自main.py:

代码语言:javascript
复制
class CDDMainMenuLayout(GridLayout):
    """
    Provides the layout for the three buttons on the home screen.
    """
    def __init__(self, *args, **kwargs):
        super(CDDMainMenuLayout, self).__init__(*args, **kwargs)
        self.rows = 1
        self.cols = 3
        self.size_hint = (.5,.5)

..。

代码语言:javascript
复制
class CDDButton(Button):
    def __init__(self, **kwargs):
        super(CDDButton, self).__init__(**kwargs)
        self.text = _('Button')
        self.background_color = colors.grey2

class AboutButton(CDDButton):
    def __init__(self, **kwargs):
        super(AboutButton, self).__init__(**kwargs)
        self.text = _("About the CDD")
        self.background_color = colors.red1
        a = Popup()
        a.title = _("About Constraint Definition Designer, Version - " + __version__)
        a.content = RstDocument(source='about.rst')
        a.size_hint_x = .8
        a.size_hint_y = .8
        self.bind(on_release=a.open)

class HelpButton(CDDButton):
    def __init__(self, **kwargs):
        super(HelpButton, self).__init__(**kwargs)
        self.text = _("Help")
        self.background_color = colors.green1
        h = Popup()
        h.title = _("CDD Help")
        h.content = RstDocument(source='help.rst')
        h.size_hint_x = .8
        h.size_hint_y = .8
        self.bind(on_release=h.open)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-08 17:23:49

如果添加额外的行self.popup = hself.popup = a,会有什么变化吗?一种可能是您的弹出窗口只是垃圾收集,因为您不存储对它们的任何引用。我不知道这是否会给你带来特殊的行为,但值得一试。

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

https://stackoverflow.com/questions/24108499

复制
相关文章

相似问题

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