如何知道用户是否在wxPyhton中更改了AuiNotebook的选项卡顺序?

问题描述 投票:0回答:1

我使用wxPyhton中的AuiNotebook处理不同选项卡上的信息。用户可以在选项卡中填写信息,通过拖放来更改它们的顺序,然后生成一个句子来总结选项卡中的信息。问题在于,当用户更改选项卡的顺序时,这句话必须重新生成,因为选项卡中的信息取决于顺序(当顺序更改时含义也会更改)。

所以,我必须知道用户何时更改选项卡的顺序以重新生成句子。

我已经尝试捕获EVT_AUINOTEBOOK_END_DRAGEVT_AUINOTEBOOK_DRAG_DONE事件,但仅当用户拆分选项卡时才调用它们。在我看来,它们没有用。

这是我尝试执行此操作的代码:

from wx.aui import AuiNotebook, EVT_AUINOTEBOOK_PAGE_CLOSED
from wx.lib.dialogs import ScrolledMessageDialog
from event import event_handler
import wx
import shlex, subprocess


class CommandNoteBook(Panel):

    def __init__(self, parent, cmd, template_file, interface_file):
        super(Panel, self).__init__(parent)
        self.command = cmd
        self.notebook = AuiNotebook(self)
        #Refresh when info inside tab changes
        self.Bind(event_handler.EVT_VALUE_CHANGED, self.OnRefresh, id=wx.ID_ANY)
        #Refresh when a tab is closed
        self.Bind(EVT_AUINOTEBOOK_PAGE_CLOSED, self.OnRefresh, self.notebook)
        #Refresh when tabs order change
        self.Bind(EVT_AUINOTEBOOK_END_DRAG, self.OnRefresh, self.notebook)
python-3.x wxpython
1个回答
0
投票

您可以将bind设置为wx.aui.EVT_AUINOTEBOOK_END_DRAG事件,并在那里设置变量。

© www.soinside.com 2019 - 2024. All rights reserved.