2
我正在尝试使用wx.aui.AuiNotebook;有没有办法阻止特定标签被关闭?即我有一个应用程序,允许用户在AuiNotebook中创建多个选项卡,但前两个选项卡是系统管理的,我不希望它们被关闭。wxAuiNotebook - 防止某些标签关闭
此外,在关闭事件中,我可以获得附加到选项卡的窗口对象被关闭吗? (从中提取数据)
我正在尝试使用wx.aui.AuiNotebook;有没有办法阻止特定标签被关闭?即我有一个应用程序,允许用户在AuiNotebook中创建多个选项卡,但前两个选项卡是系统管理的,我不希望它们被关闭。wxAuiNotebook - 防止某些标签关闭
此外,在关闭事件中,我可以获得附加到选项卡的窗口对象被关闭吗? (从中提取数据)
我有类似的情况,我想阻止用户关闭最后一个选项卡。我所做的是绑定wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE
事件,然后在事件处理程序中检查打开的标签数量。如果选项卡的数量少于两个,则切换wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
样式,以便最后一个选项卡没有关闭按钮。
class MyAuiNotebook(wx.aui.AuiNotebook):
def __init__(self, *args, **kwargs):
kwargs['style'] = kwargs.get('style', wx.aui.AUI_NB_DEFAULT_STYLE) & \
~wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
super(MyAuiNotebook, self).__init__(*args, **kwargs)
self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.onClosePage)
def onClosePage(self, event):
event.Skip()
if self.GetPageCount() <= 2:
# Prevent last tab from being closed
self.ToggleWindowStyle(wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)
def AddPage(self, *args, **kwargs):
super(MyAuiNotebook, self).AddPage(*args, **kwargs)
# Allow closing tabs when we have more than one tab:
if self.GetPageCount() > 1:
self.SetWindowStyle(self.GetWindowStyleFlag() | \
wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)