リンク

2017年1月2日月曜日

pythonでGUIツールを作る ~ ポップアップメニュー ~

wxPythonのwx.Menuを使って、右クリックで表示されるポップアップメニューを作成します。

wx.Menuについては別の記事で紹介しておりますのでそちらをご覧ください。
pythonでGUIツールを作る ~ Menubar&Menu メニューバー&メニュー ~
# -*- coding: utf-8 -*-

import wx


def rclick(event):
    """ 右クリックイベント """
    frame.PopupMenu(menu_file)


def menu_select(event):
    """ メニュー選択イベント """
    id = event.GetId()

    if id == 1:
        print('開く')
    elif id == 2:
        print('保存')
    elif id == 3:
        print('削除')
    else:
        print('終了')


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

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

label = wx.StaticText(panel, wx.ID_ANY, '右クリックでメニューを表示します', pos=(20, 30))

# メニュー
menu_file = wx.Menu()

item_1 = wx.MenuItem(menu_file, 1, '開く')
item_2 = wx.MenuItem(menu_file, 2, '保存')
item_3 = wx.MenuItem(menu_file, 3, '削除')
item_4 = wx.MenuItem(menu_file, 4, '終了')

menu_file.Append(item_1)
menu_file.Append(item_2)
menu_file.Append(item_3)
menu_file.Append(item_4)

# メニューアイテム選択イベント
menu_file.Bind(wx.EVT_MENU, menu_select)

# パネル上で右クリックしたときのイベント
panel.Bind(wx.EVT_RIGHT_DOWN, rclick)

frame.Show()
application.MainLoop()

<結果>

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

続いて解説を行います。
- - - 詳細 - - - - - - - - - - - - -
作成したメニューを表示させるにはPopupMenuメソッドを使用します。

今回の例では、パネルに右クリックイベントを設定し、そのイベント内でPopupMenuメソッドを呼び出しています。

メニューの作成方法についてはこちらをご覧ください。

メニューバーを使用する方法はよく情報がありますが、ポップアップメニューについてはあまり日本語の情報がないようでしたので、お役に立てば幸いです。

0 件のコメント:

コメントを投稿