リンク

2016年11月26日土曜日

pythonでGUIツールを作る ~ ラジオアイテム&チェックアイテム ~

ここでは、wx.Menuに追加するアイテムのラジオアイテムとチェックアイテムをご紹介します。

wx.Menuについてはこちらをご覧ください。
# -*- coding: utf-8 -*-

import wx

def click(event):
    """ ボタンクリックイベント """
    # ファイルメニューの全アイテムを取得
    count = menu_file.GetMenuItems()

    for i in count:
        # ラジオアイテムである
        if i.GetKind() == wx.ITEM_RADIO:
            # チェックが付いている
            if i.IsChecked():
                print(u'インデックス値%sのラジオアイテムにチェックが付いています' % i.GetId())

        # チェックアイテムである
        elif i.GetKind() == wx.ITEM_CHECK:
            # チェックが付いている
            if i.IsChecked():
                print(u'インデックス値%sのチェックアイテムにチェックが付いています' % i.GetId())


application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, u"テストフレーム", size=(300,200))

frame.CreateStatusBar()

panel = wx.Panel(frame, wx.ID_ANY)

# メニューバー
menu_bar = wx.MenuBar()

# 「ファイル」メニュー
menu_file = wx.Menu()

item_1 = wx.MenuItem(menu_file, 1, u'保存')
item_2 = wx.MenuItem(menu_file, 2, u'終了')
item_3 = wx.MenuItem(menu_file, 3, u'ラジオ1', kind=wx.ITEM_RADIO)
item_4 = wx.MenuItem(menu_file, 4, u'ラジオ2', kind=wx.ITEM_RADIO)
item_5 = wx.MenuItem(menu_file, 5, u'ラジオ3', kind=wx.ITEM_RADIO)
item_6 = wx.MenuItem(menu_file, 6, u'チェック1', kind=wx.ITEM_CHECK)
item_7 = wx.MenuItem(menu_file, 7, u'チェック2', kind=wx.ITEM_CHECK)

menu_file.AppendItem(item_1)
menu_file.AppendItem(item_2)
menu_file.AppendItem(item_3)
menu_file.AppendItem(item_4)
menu_file.AppendItem(item_5)
menu_file.AppendItem(item_6)
menu_file.AppendItem(item_7)

menu_bar.Append(menu_file, u'ファイル')
frame.SetMenuBar(menu_bar)

# ボタン
button = wx.Button(panel, wx.ID_ANY, u'ボタン', pos=(100, 50))
button.Bind(wx.EVT_BUTTON, click)

frame.Show()
application.MainLoop()
<結果>


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

続いて解説を行います。

- - - 詳細 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
item_3 = wx.MenuItem(menu_file, 3, u'ラジオ1', kind=wx.ITEM_RADIO)
item_6 = wx.MenuItem(menu_file, 6, u'チェック1', kind=wx.ITEM_CHECK)
ラジオアイテム・チェックアイテムを作成するには、wx.MenuItemをインスタンス化する際、kind引数を指定します。

通常アイテム → wx.ITEM_NORMAL
ラジオアイテム → wx.ITEM_RADIO
チェックアイテム → wx.ITEM_CHECK
セパレーター(区切り線) → wx.ITEM_SEPARATOR

kind引数を省略した場合は通常アイテムが適用されます。

ここからはラジオアイテム・チェックアイテムで使用する主な関数を列挙します。
# アイテム種類の取得
item_3.GetKind()

# アイテム種類の指定
item_3.SetKind(wx.ITEM_RADIO)

# チェックが付いているかどうかを取得する
item_3.IsChecked()

# チェックを付ける/外す
item_3.Check(True)
item_3.Check(False)

0 件のコメント:

コメントを投稿