相关疑难解决方法(0)

如何隐藏Kivy中的ActionButton?

我试图相应地修改ActionButton对当前屏幕的可见性(使用屏幕管理器).我找不到可见属性或类似的东西,可以简单地切换可见性(对于ActionButton和一般的Widgets都没有).

2013年的帖子建议改变按钮的纹理,但我不想依靠这样的黑客来完成这么简单的任务,此外,我的应用程序的背景将是可变的.

另一篇文章建议删除小部件并根据需要再次添加.尽管它不必要复杂.我修改为在我的情况下工作(ActionBar和ActionButton),所以我从ActionView清除小部件,然后尝试添加ActionButton.我尝试存储weakref和self成员,我得到了以下错误:

WidgetException: Cannot add <kivy.uix.actionbar.ActionButton object at 0x7fcd3fe22ce8>, it already has a parent <kivy.uix.actionbar.ActionView object at 0x7fcd3fe22870>
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激.我正在使用开发版,但它不适用于1.8.

编辑 我尝试了以下代码:

<AppActionBar>:
    ActionView:
        id: av

        ActionButton:
            id: btn_next
            text: 'Next screen'
            icon: 'data/icons/next_dark.png'
            important: True
            on_release: app.go_next()
Run Code Online (Sandbox Code Playgroud)

加载场景后运行此功能:

def _initialize(self):
  self.next = self.ids.btn_next.__self__ # same result if I don't use .__self__
Run Code Online (Sandbox Code Playgroud)

此代码引发了上面发布的异常:

self.ids.av.clear_widgets()
self.ids.av.add_widget(self.next)
Run Code Online (Sandbox Code Playgroud)

这是完整的异常跟踪:

     self._mainloop()
   File "/usr/local/lib/python2.7/dist-packages/kivy/core/window/window_pygame.py", line 266, in _mainloop
     EventLoop.idle()
   File "/usr/local/lib/python2.7/dist-packages/kivy/base.py", line 330, in idle
     Clock.tick_draw()
   File "/usr/local/lib/python2.7/dist-packages/kivy/clock.py", line 429, in …
Run Code Online (Sandbox Code Playgroud)

python kivy

4
推荐指数
3
解决办法
4414
查看次数

标签 统计

kivy ×1

python ×1