我的应用程序的第一个屏幕上有一个由三个按钮组成的小菜单(在网格布局中)。两个应该打开弹出窗口。一个来帮忙,一个来。第三个屏幕更改为另一个屏幕。
只有一个弹出窗口有效。第一个调用(在kivy文件中)工作,第二个不打开弹出窗口。如果我在cdd.kv中切换订单,那么另一个就可以工作了。
摘录自cdd.kv:
CDDMainMenuLayout:
HelpButton:
size_hint: .5,.5
MetadataButton:
size_hint: .5,.5
on_release: app.root.current = 'metadata'
AboutButton:
size_hint: .5,.5摘录自main.py:
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)..。
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)发布于 2014-06-08 17:23:49
如果添加额外的行self.popup = h和self.popup = a,会有什么变化吗?一种可能是您的弹出窗口只是垃圾收集,因为您不存储对它们的任何引用。我不知道这是否会给你带来特殊的行为,但值得一试。
https://stackoverflow.com/questions/24108499
复制相似问题