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)