📄 flatnotebook.py
字号:
style ^= fnb.FNB_TABS_BORDER_SIMPLE
self.book.SetWindowStyleFlag(style)
elif eventid == MENU_USE_MOUSE_MIDDLE_BTN:
if event.IsChecked():
style |= fnb.FNB_MOUSE_MIDDLE_CLOSES_TABS
else:
if style & fnb.FNB_MOUSE_MIDDLE_CLOSES_TABS:
style ^= fnb.FNB_MOUSE_MIDDLE_CLOSES_TABS
self.book.SetWindowStyleFlag(style)
elif eventid == MENU_USE_BOTTOM_TABS:
if event.IsChecked():
style |= fnb.FNB_BOTTOM
else:
if style & fnb.FNB_BOTTOM:
style ^= fnb.FNB_BOTTOM
self.book.SetWindowStyleFlag(style)
self.book.Refresh()
def OnQuit(self, event):
self.Destroy()
def OnDeleteAll(self, event):
self.book.DeleteAllPages()
def OnShowImages(self, event):
self._bShowImages = event.IsChecked()
def OnFF2Style(self, event):
style = self.book.GetWindowStyleFlag()
# remove old tabs style
mirror = ~(fnb.FNB_VC71 | fnb.FNB_VC8 | fnb.FNB_FANCY_TABS | fnb.FNB_FF2)
style &= mirror
style |= fnb.FNB_FF2
self.book.SetWindowStyleFlag(style)
def OnVC71Style(self, event):
style = self.book.GetWindowStyleFlag()
# remove old tabs style
mirror = ~(fnb.FNB_VC71 | fnb.FNB_VC8 | fnb.FNB_FANCY_TABS | fnb.FNB_FF2)
style &= mirror
style |= fnb.FNB_VC71
self.book.SetWindowStyleFlag(style)
def OnVC8Style(self, event):
style = self.book.GetWindowStyleFlag()
# remove old tabs style
mirror = ~(fnb.FNB_VC71 | fnb.FNB_VC8 | fnb.FNB_FANCY_TABS | fnb.FNB_FF2)
style &= mirror
# set new style
style |= fnb.FNB_VC8
self.book.SetWindowStyleFlag(style)
def OnDefaultStyle(self, event):
style = self.book.GetWindowStyleFlag()
# remove old tabs style
mirror = ~(fnb.FNB_VC71 | fnb.FNB_VC8 | fnb.FNB_FANCY_TABS | fnb.FNB_FF2)
style &= mirror
self.book.SetWindowStyleFlag(style)
def OnFancyStyle(self, event):
style = self.book.GetWindowStyleFlag()
# remove old tabs style
mirror = ~(fnb.FNB_VC71 | fnb.FNB_VC8 | fnb.FNB_FANCY_TABS | fnb.FNB_FF2)
style &= mirror
style |= fnb.FNB_FANCY_TABS
self.book.SetWindowStyleFlag(style)
def OnSelectColor(self, event):
eventid = event.GetId()
# Open a color dialog
data = wx.ColourData()
dlg = wx.ColourDialog(self, data)
if dlg.ShowModal() == wx.ID_OK:
if eventid == MENU_SELECT_GRADIENT_COLOR_BORDER:
self.book.SetGradientColourBorder(dlg.GetColourData().GetColour())
elif eventid == MENU_SELECT_GRADIENT_COLOR_FROM:
self.book.SetGradientColourFrom(dlg.GetColourData().GetColour())
elif eventid == MENU_SELECT_GRADIENT_COLOR_TO:
self.book.SetGradientColourTo(dlg.GetColourData().GetColour())
elif eventid == MENU_SET_ACTIVE_TEXT_COLOR:
self.book.SetActiveTabTextColour(dlg.GetColourData().GetColour())
elif eventid == MENU_SELECT_NONACTIVE_TEXT_COLOR:
self.book.SetNonActiveTabTextColour(dlg.GetColourData().GetColour())
elif eventid == MENU_SET_ACTIVE_TAB_COLOR:
self.book.SetActiveTabColour(dlg.GetColourData().GetColour())
elif eventid == MENU_SET_TAB_AREA_COLOR:
self.book.SetTabAreaColour(dlg.GetColourData().GetColour())
self.book.Refresh()
def OnAddPage(self, event):
caption = "New Page Added #" + str(self._newPageCounter)
self.Freeze()
image = -1
if self._bShowImages:
image = random.randint(0, self._ImageList.GetImageCount()-1)
self.book.AddPage(self.CreatePage(caption), caption, True, image)
self.Thaw()
self._newPageCounter = self._newPageCounter + 1
def CreatePage(self, caption):
p = wx.Panel(self.book)
wx.StaticText(p, -1, caption, (20,20))
wx.TextCtrl(p, -1, "", (20,40), (150,-1))
return p
def OnDeletePage(self, event):
self.book.DeletePage(self.book.GetSelection())
def OnSetSelection(self, event):
dlg = wx.TextEntryDialog(self, "Enter Tab Number to select:", "Set Selection")
if dlg.ShowModal() == wx.ID_OK:
val = dlg.GetValue()
self.book.SetSelection(int(val))
def OnEnableTab(self, event):
dlg = wx.TextEntryDialog(self, "Enter Tab Number to enable:", "Enable Tab")
if dlg.ShowModal() == wx.ID_OK:
val = dlg.GetValue()
self.book.EnableTab(int(val))
def OnDisableTab(self, event):
dlg = wx.TextEntryDialog(self, "Enter Tab Number to disable:", "Disable Tab")
if dlg.ShowModal() == wx.ID_OK:
val = dlg.GetValue()
self.book.EnableTab(int(val), False)
def OnEnableDrag(self, event):
style = self.book.GetWindowStyleFlag()
style2 = self.secondBook.GetWindowStyleFlag()
if event.IsChecked():
if style & fnb.FNB_NODRAG:
style ^= fnb.FNB_NODRAG
if style2 & fnb.FNB_NODRAG:
style2 ^= fnb.FNB_NODRAG
else:
style |= fnb.FNB_NODRAG
style2 |= fnb.FNB_NODRAG
self.book.SetWindowStyleFlag(style)
self.secondBook.SetWindowStyleFlag(style2)
def OnAllowForeignDnd(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_ALLOW_FOREIGN_DND
else:
style &= ~(fnb.FNB_ALLOW_FOREIGN_DND)
self.book.SetWindowStyleFlag(style)
self.book.Refresh()
def OnSetAllPagesShapeAngle(self, event):
dlg = wx.TextEntryDialog(self, "Enter an inclination of header borders (0-15):", "Set Angle")
if dlg.ShowModal() == wx.ID_OK:
val = dlg.GetValue()
self.book.SetAllPagesShapeAngle(int(val))
def OnSetPageImage(self, event):
dlg = wx.TextEntryDialog(self, "Enter an image index (0-%i):"%(self.book.GetImageList().GetImageCount()-1), "Set Image Index")
if dlg.ShowModal() == wx.ID_OK:
val = dlg.GetValue()
self.book.SetPageImage(self.book.GetSelection(), int(val))
def OnAdvanceSelectionFwd(self, event):
self.book.AdvanceSelection(True)
def OnAdvanceSelectionBack(self, event):
self.book.AdvanceSelection(False)
def OnPageChanging(self, event):
self.log.write("Page Changing From %d To %d" % (event.GetOldSelection(), event.GetSelection()))
event.Skip()
def OnPageChanged(self, event):
self.log.write("Page Changed To %d" % event.GetSelection())
event.Skip()
def OnPageClosing(self, event):
self.log.write("Page Closing, Selection: %d" % event.GetSelection())
event.Skip()
def OnDrawTabX(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_X_ON_TAB
else:
if style & fnb.FNB_X_ON_TAB:
style ^= fnb.FNB_X_ON_TAB
self.book.SetWindowStyleFlag(style)
def OnDClickCloseTab(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_DCLICK_CLOSES_TABS
else:
style &= ~(fnb.FNB_DCLICK_CLOSES_TABS)
self.book.SetWindowStyleFlag(style)
def OnGradientBack(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_BACKGROUND_GRADIENT
else:
style &= ~(fnb.FNB_BACKGROUND_GRADIENT)
self.book.SetWindowStyleFlag(style)
self.book.Refresh()
def OnColorfulTabs(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_COLORFUL_TABS
else:
style &= ~(fnb.FNB_COLORFUL_TABS)
self.book.SetWindowStyleFlag(style)
self.book.Refresh()
def OnSmartTabs(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_SMART_TABS
else:
style &= ~fnb.FNB_SMART_TABS
self.book.SetWindowStyleFlag(style)
self.book.Refresh()
def OnDropDownArrow(self, event):
style = self.book.GetWindowStyleFlag()
if event.IsChecked():
style |= fnb.FNB_DROPDOWN_TABS_LIST
style |= fnb.FNB_NO_NAV_BUTTONS
else:
style &= ~fnb.FNB_DROPDOWN_TABS_LIST
style &= ~fnb.FNB_NO_NAV_BUTTONS
self.book.SetWindowStyleFlag(style)
self.book.Refresh()
def OnHideNavigationButtonsUI(self, event):
style = self.book.GetWindowStyleFlag()
event.Check((style & fnb.FNB_NO_NAV_BUTTONS and [True] or [False])[0])
def OnDropDownArrowUI(self, event):
style = self.book.GetWindowStyleFlag()
event.Check((style & fnb.FNB_DROPDOWN_TABS_LIST and [True] or [False])[0])
def OnAllowForeignDndUI(self, event):
style = self.book.GetWindowStyleFlag()
event.Enable((style & fnb.FNB_NODRAG and [False] or [True])[0])
def OnAbout(self, event):
msg = "This Is The About Dialog Of The FlatNotebook Demo.\n\n" + \
"Author: Andrea Gavana @ 02 Oct 2006\n\n" + \
"Please Report Any Bug/Requests Of Improvements\n" + \
"To Me At The Following Adresses:\n\n" + \
"andrea.gavana@gmail.com\n" + "gavana@kpo.kz\n\n" + \
"Based On Eran C++ Implementation (wxWidgets Forum).\n\n" + \
"Welcome To wxPython " + wx.VERSION_STRING + "!!"
dlg = wx.MessageDialog(self, msg, "FlatNotebook wxPython Demo",
wx.OK | wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
#---------------------------------------------------------------------------
class TestPanel(wx.Panel):
def __init__(self, parent, log):
self.log = log
wx.Panel.__init__(self, parent, -1)
b = wx.Button(self, -1, " Test FlatNotebook ", (50,50))
self.Bind(wx.EVT_BUTTON, self.OnButton, b)
def OnButton(self, evt):
self.win = FlatNotebookDemo(self, self.log)
self.win.Show(True)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#----------------------------------------------------------------------
overview = fnb.__doc__
if __name__ == '__main__':
import sys,os
import run
run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -