如果wx.Toolbar物件的style引數設定為wx.TB_DOCKABLE,它成為可停靠。浮動工具列還可以用wxPython中的AUIToolBar類來構造。
建構函式不帶任何引數則使用工具列預設引數。附加引數可以傳遞給wx.ToolBar類構造如下 -
Wx.ToolBar(parent, id, pos, size, style)
S.N. |
引數和說明
|
---|---|
1 |
wx.TB_FLAT
提供該工具列平面效果
|
2 |
wx.TB_HORIZONTAL
指定水平佈局(預設)
|
3 |
wxTB_VERTICAL
指定垂直布局
|
4 |
wx.TB_DEFAULT_STYLE
結合wxTB_FLAT和wxTB_HORIZONTAL
|
5 |
wx.TB_DOCKABLE
使工具列浮動和可停靠
|
6 |
wx.TB_NO_TOOLTIPS
當滑鼠懸停在工具列不顯示簡短幫助工具提示,
|
7 |
wx.TB_NOICONS
指定工具列按鈕沒有圖示;預設它們是顯示的
|
8 |
wx.TB_TEXT
顯示在工具列按鈕上的文字;預設情況下,只有圖示顯示
|
S.N. |
方法和說明
|
---|---|
1 |
AddTool()
新增工具按鈕到工具列。工具的型別是由各種引數指定的
|
2 |
AddRadioTool()
新增屬於按鈕的互斥組按鈕
|
3 |
AddCheckTool()
新增一個切換按鈕到工具列
|
4 |
AddLabelTool()
使用圖示和標籤來新增工具欄
|
5 |
AddSeparator()
新增一個分隔符來表示工具按鈕組
|
6 |
AddControl()
新增任何控制工具列。 例如,wx.Button,wx.Combobox等。
|
7 |
ClearTools()
刪除所有在工具列的按鈕
|
8 |
RemoveTool()
從給出工具按鈕移除工具列
|
9 |
Realize()
工具按鈕增加呼叫
|
AddTool(parent, id, bitmap)
父引數是在按鈕被新增到工具列。通過點陣圖bitmap引數所指定影象圖示。
工具按鈕發出EVT_TOOL事件。如果新增到工具列其他控制必須由各自CommandEvent系結器到事件處理程式約束。
tb = wx.ToolBar( self, -1 ) self.ToolBar = tb
tb.AddTool( 101, wx.Bitmap("new.png") ) tb.AddTool(102,wx.Bitmap("save.png"))
right = tb.AddRadioTool(222,wx.Bitmap("right.png")) center = tb.AddRadioTool(333,wx.Bitmap("center.png")) justify = tb.AddRadioTool(444,wx.Bitmap("justify.png"))
self.combo = wx.ComboBox(tb, 555, value = "Times", choices = ["Arial","Times","Courier"])
tb.Realize()
tb.Bind(wx.EVT_TOOL, self.Onright) tb.Bind(wx.EVT_COMBOBOX,self.OnCombo)
相應的事件處理程式以追加方式處理該事件源。雖然EVT_TOOL事件的ID會顯示在工具列下方的文字框中,選中的字型名稱新增到它的時候,EVT_COMBOBOX事件觸發。
def Onright(self, event): self.text.AppendText(str(event.GetId())+"\n") def OnCombo(self,event): self.text.AppendText( self.combo.GetValue()+"\n")
import wx class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(parent, title = title) self.InitUI() def InitUI(self): menubar = wx.MenuBar() menu = wx.Menu() menubar.Append(menu,"File") self.SetMenuBar(menubar) tb = wx.ToolBar( self, -1 ) self.ToolBar = tb tb.AddTool( 101, wx.Bitmap("new.png") ) tb.AddTool(102,wx.Bitmap("save.png")) right = tb.AddRadioTool(222,wx.Bitmap("right.png")) center = tb.AddRadioTool(333,wx.Bitmap("center.png")) justify = tb.AddRadioTool(444,wx.Bitmap("justify.png")) tb.Bind(wx.EVT_TOOL, self.Onright) tb.Bind(wx.EVT_COMBOBOX,self.OnCombo) self.combo = wx.ComboBox( tb, 555, value = "Times", choices = ["Arial","Times","Courier"]) tb.AddControl(self.combo ) tb.Realize() self.SetSize((350, 250)) self.text = wx.TextCtrl(self,-1, style = wx.EXPAND|wx.TE_MULTILINE) self.Centre() self.Show(True) def Onright(self, event): self.text.AppendText(str(event.GetId())+"\n") def OnCombo(self,event): self.text.AppendText( self.combo.GetValue()+"\n") ex = wx.App() Mywin(None,'ToolBar Demo - www.tw511.com') ex.MainLoop()