wxPythonのToolbar(ツールバー)を使う | wx.ToolBar

2022年5月6日金曜日

Python wxPython

皆さん、ツールバーはご存じでしょうか。
例えば、TeraPadのメニューバーの一つしたにアイコンが並んでますよね。これがツールバーです。
他にもいろいろな場面でツールバーが活用さらていますが、そんなツールバーを今回はwxPythonで使いたいと思います。

wx.Toolbar

まずこんな感じに、フレームにツールバーを追加します。
Toolbar = self.CreateToolBar()
そしたら作成したToolbarにどんどんアイテムを追加していきます。
Toolbar.AddTool(0,"",wx.Bitmap("aiueo.png"))
第一引数はIDです。ツールバーが選択されたときのイベントを実装する際に必要になってきます。
ちなみにセパレーターを追加するには、以下のようにします。
Toolbar.AddSeparator()

また、Windowsの場合はツールバーを正確に反映するために、最後に以下のように入力する必要があります。
Toolbar.Realize()

サンプルコード

import wx

class MyFrame(wx.Frame):
	def __init__(self):
		wx.Frame.__init__(self,None,-1,"タイトル")
		Toolbar = self.CreateToolBar()
		Toolbar.AddTool(0,"",wx.Bitmap("sample.png"))
		Toolbar.AddSeparator()
		Toolbar.AddTool(1,"",wx.Bitmap("sample2.png"))
		Toolbar.Realize()
		self.Bind(wx.EVT_MENU,self.SelectMenu)
	def SelectMenu(self,event):
		Id = event.GetId()
		if Id == 0:
			wx.MessageBox("アイテム1が押されました")
		elif Id == 1:
			wx.MessageBox("アイテム2が押されました")
app = wx.App(0)
MyFrame().Show(True)
app.MainLoop()
※sample.pngとsample2.pngが必要となりますので、各自で用意してください。
※画像のサイズを35x35くらいにリサイズしないと、ツールバーのアイコンがかなり大きく表示されます。
※画像を用意するのが面倒だったので、ふたつとも同じ画像にしてます。

さいごに

ツールバーはメニューバーよりも気軽に押せる感じがします。
さらにメニューバーは文字ですが、ツールバーはアイコンなので、わかりやすくなります。
是非、ツールバーを追加してみてはいかがでしょうか。

ページ

QooQ