鍍金池/ 教程/ Python/ wxPython ToolBar類
wxPython GUI構(gòu)建工具wxFormBuilder
wxPython StaticText類
WxPython教程
wxPython可??看翱?/span>
wxPython ComboBox & Choice類
wxPython FlexiGridSizer布局
wxPython入門(Hello World)
wxPython RadioButton & RadioBox類
wxPython拖放
wxPython HTMLWindow類
wxPython ToolBar類
wxPython GridBagSizer布局
wxPython Dialog類
wxPython布局管理
wxPython TextCtrl類
wxPython開發(fā)環(huán)境安裝
wxPython Slider類
wxPython CheckBox類
wxPython Major類
wxPython GridSizer布局
wxPython事件處理
wxPython SplitterWindow類
Menu Item, Menu & MenuBar類
wxPython Button控件
wxPython StaticBoxSizer布局
wxPython Guage類
wxPython Frame類
wxPython多文檔界面
wxPython Panel類
wxPython BoxSizer布局
wxPython繪圖API

wxPython ToolBar類

工具欄包括文本文字說明或圖標(biāo)按鈕的一個(gè)或多個(gè)水平條,通常被放置在MenuBar頂層幀的正下方。

如果wx.Toolbar對(duì)象的style參數(shù)設(shè)置為wx.TB_DOCKABLE,它成為可停靠。浮動(dòng)工具欄還可以用wxPython中的AUIToolBar類來構(gòu)造。

構(gòu)造函數(shù)不帶任何參數(shù)則使用工具欄默認(rèn)參數(shù)。附加參數(shù)可以傳遞給wx.ToolBar類構(gòu)造如下 -

Wx.ToolBar(parent, id, pos, size, style)
對(duì)于wx.ToolBar定義的樣式參數(shù)包括常數(shù) -
S.N.
參數(shù)和說明
1

wx.TB_FLAT

提供該工具欄平面效果
2

wx.TB_HORIZONTAL

指定水平布局(默認(rèn))
3

wxTB_VERTICAL

指定垂直布局
4

wx.TB_DEFAULT_STYLE

結(jié)合wxTB_FLAT和wxTB_HORIZONTAL
5

wx.TB_DOCKABLE

使工具欄浮動(dòng)和可???
6

wx.TB_NO_TOOLTIPS

當(dāng)鼠標(biāo)懸停在工具欄不顯示簡(jiǎn)短幫助工具提示,
7

wx.TB_NOICONS

指定工具欄按鈕沒有圖標(biāo);默認(rèn)它們是顯示的
8

wx.TB_TEXT

顯示在工具欄按鈕上的文本;默認(rèn)情況下,只有圖標(biāo)顯示
不同特征的工具按鈕可以添加到工具欄。 Wx.ToolBar類具有以下有用的方法 -
S.N.
方法和說明
1

AddTool()

添加工具按鈕到工具欄。工具的類型是由各種參數(shù)指定的
2

AddRadioTool()

添加屬于按鈕的互斥組按鈕
3

AddCheckTool()

添加一個(gè)切換按鈕到工具欄
4

AddLabelTool()

使用圖標(biāo)和標(biāo)簽來添加工具
5

AddSeparator()

添加一個(gè)分隔符來表示工具按鈕組
6

AddControl()

添加任何控制工具欄。 例如,wx.Button,wx.Combobox等。
7

ClearTools()

刪除所有在工具欄的按鈕
8

RemoveTool()

從給出工具按鈕移除工具欄
9

Realize()

工具按鈕增加調(diào)用
AddTool()方法至少需要三個(gè)參數(shù) -
AddTool(parent, id, bitmap) 

父參數(shù)是在按鈕被添加到工具欄。通過位圖bitmap參數(shù)所指定圖像圖標(biāo)。

工具按鈕發(fā)出EVT_TOOL事件。如果添加到工具欄其他控制必須由各自CommandEvent綁定器到事件處理程序約束。

實(shí)例

在下面的例子中,工具欄上顯示兩個(gè)正常的工具按鈕,三個(gè)單選工具按鈕和一個(gè)組合框。
首先,工具欄對(duì)象被激活。
tb = wx.ToolBar( self, -1 ) 
self.ToolBar = tb
使用AddTool()方法,兩個(gè)工具的圖標(biāo)為“新建”,“保存”被添加。
tb.AddTool( 101, wx.Bitmap("new.png") ) 
tb.AddTool(102,wx.Bitmap("save.png"))
一組RadioTools,然后添加到工具欄,其中只有一個(gè)是可選擇在同一時(shí)間。
right = tb.AddRadioTool(222,wx.Bitmap("right.png")) 
center = tb.AddRadioTool(333,wx.Bitmap("center.png")) 
justify = tb.AddRadioTool(444,wx.Bitmap("justify.png"))
使用wx.ComboBox控件的AddControl()方法添加到工具欄。組合框列表中包含的字體的名稱。
self.combo = wx.ComboBox(tb, 555, value = "Times", choices = ["Arial","Times","Courier"])
Realize() 方法需要被調(diào)用,以最終確定工具欄創(chuàng)建。
tb.Realize()
最后,事件綁定器工具欄和組合框被注冊(cè)。
tb.Bind(wx.EVT_TOOL, self.Onright) 
tb.Bind(wx.EVT_COMBOBOX,self.OnCombo) 

相應(yīng)的事件處理程序以追加方式處理該事件源。雖然EVT_TOOL事件的ID會(huì)顯示在工具欄下方的文本框中,選中的字體名稱添加到它的時(shí)候,EVT_COMBOBOX事件觸發(fā)。

def Onright(self, event): 
   self.text.AppendText(str(event.GetId())+"\n") 
	
def OnCombo(self,event): 
   self.text.AppendText( self.combo.GetValue()+"\n")
整個(gè)代碼如下 -
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.yiibai.com') 
ex.MainLoop() 
上面的代碼產(chǎn)生下面的輸出 -

ToolBar Output

上一篇:wxPython拖放下一篇:wxPython Frame類