Wxpython-wx-toolbar-class

提供:Dev Guides
移動先:案内検索

wxPython-ToolBarクラス

通常、テキストキャプションまたはアイコン付きのボタンで構成されるツールバーの1つまたは複数の水平ストリップは、トップレベルフレームのMenuBarのすぐ下に配置されます。

*wx.Toolbar* オブジェクトのスタイルパラメーターがwx.TB_DOCKABLEに設定されている場合、ドッキング可能になります。 フローティングツールバーは、wxPythonのAUIToolBarクラスを使用して構築することもできます。

引数なしのコンストラクターは、デフォルトのパラメーターを持つツールバーを配置します。 追加のパラメータは、次のようにwx.ToolBarクラスのコンストラクタに渡すことができます-

Wx.ToolBar(parent, id, pos, size, style)

wx.ToolBar用に定義されたスタイルパラメータには、次の定数が含まれています-

以下に、wx.ToolBarの最も一般的に使用されるパラメーターを示します。

S.N. Parameters & Description
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

ツールバーのボタンにテキストを表示します。デフォルトではアイコンのみが表示されます

さまざまな機能のツールボタンをツールバーに追加できます。 Wx.ToolBarクラスには、次の便利なメソッドがあります-

以下に、wx.ToolBarの最も一般的に使用されるメソッドを示します。

S.N. Methods & Description
1

AddTool()

ツールボタンをツールバーに追加します。 ツールのタイプはkindパラメーターで指定されます

2

AddRadioTool()

相互に排他的なボタンのグループに属するボタンを追加します

3

AddCheckTool()

ツールバーにトグルボタンを追加します

4

AddLabelTool()

アイコンとラベルが付いたツールを追加します

5

AddSeparator()

ツールボタンのグループを示すセパレータを追加します

6

AddControl()

ツールバーにコントロールを追加します。 Eg. wx.Button、wx.Comboboxなど

7

ClearTools()

ツールバーからすべてのボタンを削除します

8

RemoveTool()

ツールバーからツールボタンを削除します

9

Realize()

ツールボタンの追加後に呼び出す必要があります

AddTool()メソッドは少なくとも3つのパラメータを取ります-

AddTool(parent, id, bitmap)

親パラメーターは、ボタンが追加されるツールバーです。 画像アイコンはビットマップパラメータで指定されます。

一般的なツールボタンは、EVT_TOOLイベントを発行します。 他のコントロールをツールバーに追加する場合は、それぞれのCommandEventバインダーによってイベントハンドラーにバインドする必要があります。

次の例では、ツールバーに2つの通常のツールボタン、3つのラジオツールボタン、1つのコンボボックスが表示されています。

まず、ツールバーオブジェクトがアクティブになります。

tb = wx.ToolBar( self, -1 )
self.ToolBar = tb

AddTool()メソッドを使用して、「新規」と「保存」のアイコンが付いた2つのツールが追加されます。

tb.AddTool( 101, wx.Bitmap("new.png") )
tb.AddTool(102,wx.Bitmap("save.png"))

その後、RadioToolsのグループがツールバーに追加されますが、一度に選択できるのはそのうちの1つだけです。

right = tb.AddRadioTool(222,wx.Bitmap("right.png"))
center = tb.AddRadioTool(333,wx.Bitmap("center.png"))
justify = tb.AddRadioTool(444,wx.Bitmap("justify.png"))

AddControl()メソッドを使用して、wx.ComboBoxコントロールがツールバーに追加されました。 コンボボックスリストには、フォントの名前が含まれています。

self.combo = wx.ComboBox(tb, 555, value = "Times", choices = ["Arial","Times","Courier"])

ツールバーの構築を完了するには、Realize()メソッドを呼び出す必要があります。

tb.Realize()

最後に、ツールバーとコンボボックスのイベントバインダーが登録されます。

tb.Bind(wx.EVT_TOOL, self.Onright)
tb.Bind(wx.EVT_COMBOBOX,self.OnCombo)

各イベントハンドラのappendメソッドは、イベントソースを処理します。 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')
ex.MainLoop()

上記のコードは、次の出力を生成します-

ツールバー出力