📄 buttonpanel.py
字号:
bk = self.targetTitleBar.GetBPArt().GetColor(bp.BP_BACKGROUND_COLOR)
self.bakbrush.SetBitmapLabel(self.CreateColorBitmap(bk))
capfrom = self.targetTitleBar.GetBPArt().GetColor(bp.BP_GRADIENT_COLOR_FROM)
self.gradientfrom.SetBitmapLabel(self.CreateColorBitmap(capfrom))
capto = self.targetTitleBar.GetBPArt().GetColor(bp.BP_GRADIENT_COLOR_TO)
self.gradientto.SetBitmapLabel(self.CreateColorBitmap(capto))
captxt = self.targetTitleBar.GetBPArt().GetColor(bp.BP_TEXT_COLOR)
self.captioncolour.SetBitmapLabel(self.CreateColorBitmap(captxt))
bor = self.targetTitleBar.GetBPArt().GetColor(bp.BP_BORDER_COLOR)
self.bordercolour.SetBitmapLabel(self.CreateColorBitmap(bor))
btntext = self.targetTitleBar.GetBPArt().GetColor(bp.BP_BUTTONTEXT_COLOR)
self.textbuttoncolour.SetBitmapLabel(self.CreateColorBitmap(btntext))
selb = self.targetTitleBar.GetBPArt().GetColor(bp.BP_SELECTION_BRUSH_COLOR)
self.selectionbrush.SetBitmapLabel(self.CreateColorBitmap(selb))
selp = self.targetTitleBar.GetBPArt().GetColor(bp.BP_SELECTION_PEN_COLOR)
self.selectionpen.SetBitmapLabel(self.CreateColorBitmap(selp))
sepc = self.targetTitleBar.GetBPArt().GetColor(bp.BP_SEPARATOR_COLOR)
self.separatorcolour.SetBitmapLabel(self.CreateColorBitmap(sepc))
def OnDefaultStyle(self, event):
self.verticalgradient.Enable(False)
self.horizontalgradient.Enable(False)
self.targetTitleBar.SetStyle(bp.BP_DEFAULT_STYLE)
self.targetTitleBar.Refresh()
event.Skip()
def OnGradientStyle(self, event):
self.verticalgradient.Enable(True)
self.horizontalgradient.Enable(True)
self.targetTitleBar.SetStyle(bp.BP_USE_GRADIENT)
self.targetTitleBar.Refresh()
event.Skip()
def OnVerticalGradient(self, event):
self.targetTitleBar.GetBPArt().SetGradientType(bp.BP_GRADIENT_VERTICAL)
self.targetTitleBar.SetStyle(bp.BP_USE_GRADIENT)
self.targetTitleBar.Refresh()
event.Skip()
def OnHorizontalGradient(self, event):
self.targetTitleBar.GetBPArt().SetGradientType(bp.BP_GRADIENT_HORIZONTAL)
self.targetTitleBar.SetStyle(bp.BP_USE_GRADIENT)
self.targetTitleBar.Refresh()
event.Skip()
def OnSetColour(self, event):
dlg = wx.ColourDialog(self.parent)
dlg.SetTitle("Color Picker")
if dlg.ShowModal() != wx.ID_OK:
return
var = 0
if event.GetId() == ID_BackgroundColour:
var = bp.BP_BACKGROUND_COLOR
elif event.GetId() == ID_GradientFrom:
var = bp.BP_GRADIENT_COLOR_FROM
elif event.GetId() == ID_GradientTo:
var = bp.BP_GRADIENT_COLOR_TO
elif event.GetId() == ID_BorderColour:
var = bp.BP_BORDER_COLOR
elif event.GetId() == ID_CaptionColour:
var = bp.BP_TEXT_COLOR
elif event.GetId() == ID_ButtonTextColour:
var = bp.BP_BUTTONTEXT_COLOR
elif event.GetId() == ID_SelectionBrush:
var = bp.BP_SELECTION_BRUSH_COLOR
elif event.GetId() == ID_SelectionPen:
var = bp.BP_SELECTION_PEN_COLOR
elif event.GetId() == ID_SeparatorColour:
var = bp.BP_SEPARATOR_COLOR
else:
return
self.targetTitleBar.GetBPArt().SetColor(var, dlg.GetColourData().GetColour())
self.targetTitleBar.Refresh()
self.UpdateColors()
self.parent.useredited = True
def OnSeparator(self, event):
self.targetTitleBar.GetBPArt().SetMetric(bp.BP_SEPARATOR_SIZE,
event.GetInt())
self.targetTitleBar.DoLayout()
self.parent.mainPanel.Layout()
self.parent.useredited = True
event.Skip()
def OnMargins(self, event):
self.targetTitleBar.GetBPArt().SetMetric(bp.BP_MARGINS_SIZE,
wx.Size(event.GetInt(), event.GetInt()))
self.targetTitleBar.DoLayout()
self.parent.mainPanel.Layout()
self.parent.useredited = True
event.Skip()
def OnPadding(self, event):
self.targetTitleBar.GetBPArt().SetMetric(bp.BP_PADDING_SIZE,
wx.Size(event.GetInt(), event.GetInt()))
self.targetTitleBar.DoLayout()
self.parent.mainPanel.Layout()
self.parent.useredited = True
event.Skip()
def OnBorder(self, event):
self.targetTitleBar.GetBPArt().SetMetric(bp.BP_BORDER_SIZE,
event.GetInt())
self.targetTitleBar.DoLayout()
self.parent.mainPanel.Layout()
self.parent.useredited = True
event.Skip()
def OnClose(self, event):
self.parent.hassettingpanel = False
self.Destroy()
#----------------------------------------------------------------------
class ButtonPanelDemo(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="ButtonPanel wxPython Demo ;-)",
pos=wx.DefaultPosition, size=(640, 400), style=wx.DEFAULT_FRAME_STYLE):
wx.Frame.__init__(self, parent, id, title, pos, size, style)
self.useredited = False
self.hassettingpanel = False
self.SetIcon(GetMondrianIcon())
self.CreateMenuBar()
self.statusbar = self.CreateStatusBar(2, wx.ST_SIZEGRIP)
self.statusbar.SetStatusWidths([-2, -1])
# statusbar fields
statusbar_fields = [("ButtonPanel wxPython Demo, Andrea Gavana @ 02 Oct 2006"),
("Welcome To wxPython!")]
for i in range(len(statusbar_fields)):
self.statusbar.SetStatusText(statusbar_fields[i], i)
self.mainPanel = wx.Panel(self, -1)
self.logtext = wx.TextCtrl(self.mainPanel, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY)
vSizer = wx.BoxSizer(wx.VERTICAL)
self.mainPanel.SetSizer(vSizer)
self.alignments = [bp.BP_ALIGN_LEFT, bp.BP_ALIGN_RIGHT, bp.BP_ALIGN_TOP, bp.BP_ALIGN_BOTTOM]
self.alignment = bp.BP_ALIGN_LEFT
self.style = bp.BP_USE_GRADIENT
self.titleBar = bp.ButtonPanel(self.mainPanel, -1, "A Simple Test & Demo",
style=self.style, alignment=self.alignment)
self.created = False
self.pngs = [ (images.get_bp_btn1Bitmap(), 'label1'),
(images.get_bp_btn2Bitmap(), 'label2'),
(images.get_bp_btn3Bitmap(), 'label3'),
(images.get_bp_btn4Bitmap(), 'label4'),
]
self.CreateButtons()
self.SetProperties()
def CreateMenuBar(self):
mb = wx.MenuBar()
file_menu = wx.Menu()
item = wx.MenuItem(file_menu, wx.ID_ANY, "&Quit")
file_menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnClose, item)
edit_menu = wx.Menu()
item = wx.MenuItem(edit_menu, wx.ID_ANY, "Set Bar Text")
edit_menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnSetBarText, item)
edit_menu.AppendSeparator()
submenu = wx.Menu()
item = wx.MenuItem(submenu, wx.ID_ANY, "BP_ALIGN_LEFT", kind=wx.ITEM_RADIO)
submenu.AppendItem(item)
item.Check(True)
self.Bind(wx.EVT_MENU, self.OnAlignment, item)
item = wx.MenuItem(submenu, wx.ID_ANY, "BP_ALIGN_RIGHT", kind=wx.ITEM_RADIO)
submenu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnAlignment, item)
item = wx.MenuItem(submenu, wx.ID_ANY, "BP_ALIGN_TOP", kind=wx.ITEM_RADIO)
submenu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnAlignment, item)
item = wx.MenuItem(submenu, wx.ID_ANY, "BP_ALIGN_BOTTOM", kind=wx.ITEM_RADIO)
submenu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnAlignment, item)
edit_menu.AppendMenu(wx.ID_ANY, "&Alignment", submenu)
submenu = wx.Menu()
item = wx.MenuItem(submenu, wx.ID_ANY, "Default Style", kind=wx.ITEM_RADIO)
submenu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnDefaultStyle, item)
item = wx.MenuItem(submenu, wx.ID_ANY, "Gradient Style", kind=wx.ITEM_RADIO)
submenu.AppendItem(item)
item.Check(True)
self.Bind(wx.EVT_MENU, self.OnGradientStyle, item)
edit_menu.AppendMenu(wx.ID_ANY, "&Styles", submenu)
edit_menu.AppendSeparator()
item = wx.MenuItem(submenu, wx.ID_ANY, "Settings Panel")
edit_menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnSettingsPanel, item)
demo_menu = wx.Menu()
item = wx.MenuItem(demo_menu, wx.ID_ANY, "Default Demo", kind=wx.ITEM_RADIO)
demo_menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnDefaultDemo, item)
item = wx.MenuItem(demo_menu, wx.ID_ANY, "Button Only Demo", kind=wx.ITEM_RADIO)
demo_menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnButtonOnly, item)
help_menu = wx.Menu()
item = wx.MenuItem(help_menu, wx.ID_ANY, "&About...")
help_menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnAbout, item)
mb.Append(file_menu, "&File")
mb.Append(edit_menu, "&Edit")
mb.Append(demo_menu, "&Demo")
mb.Append(help_menu, "&Help")
self.SetMenuBar(mb)
def CreateButtons(self):
# Here we (re)create the buttons for the default startup demo
self.Freeze()
if self.created:
sizer = self.mainPanel.GetSizer()
sizer.Detach(0)
self.titleBar.Hide()
wx.CallAfter(self.titleBar.Destroy)
self.titleBar = bp.ButtonPanel(self.mainPanel, -1, "A Simple Test & Demo",
style=self.style, alignment=self.alignment)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -