添加小部件后如何更新Kivy ActionGroup显示?

时间:2019-06-24 05:26:33

标签: python kivy

我目前正在尝试在ActionGroup小部件中动态添加,删除和显示内容/小部件。当我尝试将ActionButton添加到ActionGroup时,小部件将添加到ActionGroup。但是,当我在程序测试运行中单击ActionGroup(旋转器模式)时,未显示我添加的小部件。它仅在我调整应用程序窗口的大小时显示,迫使其刷新然后允许显示我添加的ActionButton。当我添加一个ActionButton时,如何使它立即显示,而不是让我在App窗口上做一些调整大小只是为了使其显示。

我尝试查看如何刷新ActionBar或ActionView,类似于在尝试调整窗口大小时如何刷新。但是,该文档未显示任何制作方法。

python代码

class ThirstyWellRoot(BoxLayout):
     def create_graph(self, port):
        graph_controller = GraphController(port, name=port.port_name)
        action_button = ActionButton(text=port.port_name)
        self.screen_manager.add_widget(graph_controller)
        self.action_group.add_widget(action_button)

kv代码

<ThirstyWellRoot>:
    action_group: action_group
    screen_manager: screen_manager
    orientation: 'vertical'
    canvas:
        Color:
            rgba: tertiary_color
        Rectangle:
            size: self.size
            pos: self.pos
    ScreenManager:
        id: screen_manager
    ActionBar:
        height: 50
        ActionView:
            id: action_view
            use_separator: True
            ActionPrevious:
                with_previous: False
                app_icon: 'assets/theme/logo.png'
                on_release: root.about()
            ActionGroup:
                id: action_group
                mode: 'spinner'
                text: 'PORTS'
            ActionGroup:
                text: 'DISPLAY'
                ActionButton:
                    text: 'ADD'
                    on_release: root.add_connection()
                ActionButton:
                    text: 'OPEN'
                    on_release: root.open_graph()
                ActionButton:
                    text: 'REMOVE'
                    on_release: root.remove_graph()
            ActionGroup:
                text: 'COMMANDS'
                ActionButton:
                    text: 'MONITOR'
                ActionButton:
                    text: 'STOP'
                ActionButton:
                    text: 'RESET'

可以预期的是,当我将ActionButton添加到ActionGroup时,按下ActionGroup时,添加的小部件应该立即可见(旋转方式)。但是,它不会立即显示,仅在我调整窗口大小,迫使其溢出(来自ActionView的ActionOverflow)并显示我添加的ActionButton时显示。

添加按钮

As I add the button

添加按钮后,按ActionGroup时该按钮不显示

After I add the button it does not show up as I press the ActionGroup

仅当我尝试了一些最小化和最大化窗口命令时才会显示

It only shows up when I tried few minimize and maximize window commands

0 个答案:

没有答案