リンク

2016年11月6日日曜日

pythonでGUIツールを作る ~ BitmapButton ビットマップボタン ~

ここではwxPythonのBitmaputton(ビットマップボタン)をご紹介します。

ビットマップボタンはボタンと画像がひとつになったウィジットです。
「ボタンとして使える画像」と言ったほうがイメージしやすいかもしれません。
# -*- coding: UTF-8 -*-

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, u"タイトル", size=(300, 200))
p = wx.Panel(frame, wx.ID_ANY)

# BitmapButton
button = wx.BitmapButton(p, wx.ID_ANY, wx.Bitmap('a.png'))

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(button)

p.SetSizer(layout)

frame.Show()
application.MainLoop()

<結果>

上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、pythonでGUIツールを作る ~基礎編~をご覧ください。

続いてwx.BitmapButtonの解説を行います。


- - - 詳細 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
button = wx.BitmapButton(p, wx.ID_ANY, wx.Bitmap('a.png'))
ビットマップボタンを作成するにはwx.BitmapButtonクラスを使用します。
基本的な引数は(親ウィジット、識別子、ビットマップイメージ)です。

このとき、ボタンサイズを指定しない場合は自動的にイメージのサイズになります。
今回は48x48のイメージを使用したためこの大きさになっています。

イメージサイズがボタンサイズの限界を超える場合はイメージが見切れますので注意が必要です。
たとえば、使用するイメージを256x256のものに変更すると次のようになります。


これはフレームサイズが300x200に対し、イメージサイズが256x256なのでボタンサイズが256x200になったということです。

wx.BitmapButtonで使用できる関数は基本的にwx.Buttonクラスと同じです。
wx.Buttonの使い方や関数についてはpythonでGUIツールを作る ~ ボタン ~をご覧ください。

wx.BitmapButtonでのみ使える関数は下記の通りです。
# 無効状態の時のイメージを指定する
button.SetBitmapDisabled(wx.Bitmap('b.png'))

# フォーカス取得時のイメージを指定する
button.SetBitmapFocus(wx.Bitmap('b.png'))

# マウスオーバー時のイメージを指定する
button.SetBitmapHover(wx.Bitmap('b.png'))

# 押下時のイメージを指定する
button.SetBitmapSelected(wx.Bitmap('b.png'))
上記関数はボタン上のイメージを切り替えるものですが、切り替え前後のイメージサイズが同じでなければならない点に注意してください。

0 件のコメント:

コメントを投稿