Wxpython-menus
メニュー項目、メニューおよびメニューバー
最上位ウィンドウのタイトルバーのすぐ下にある水平バーは、一連のメニューを表示するために予約されています。 wxPython APIの* wx.MenuBarクラス*のオブジェクトです。
wx.Menuクラスのオブジェクトがメニューバーに追加されます。 また、コンテキストメニューとポップアップメニューの作成にも使用されます。 各メニューには、1つ以上のwx.MenuItemオブジェクトまたはカスケードメニューオブジェクトが含まれる場合があります。
wx.MenuBarクラスには、デフォルトのコンストラクターに加えて、パラメーター化されたコンストラクターがあります。
パラメータ「n」はメニューの数を表します。 Menu は、メニューとタイトルの配列、および文字列の配列です。 スタイルパラメータがwx.MB_DOCKABLEに設定されている場合、メニューバーをドッキングできます。
以下は、wx.MenuBarクラスのメソッドのリストです-
S.N. | Methods & Description |
---|---|
1 |
Append() メニューオブジェクトをバーに追加します |
2 |
Check() メニューをオンまたはオフにします |
3 |
Enable() メニューを有効または無効にします |
4 |
Remove() バーからメニューを削除する |
wx.Menuクラスオブジェクトは、1つ以上のメニュー項目のプルダウンリストであり、そのうちの1つはユーザーが選択できます。
次の表は、wx.Menuクラスの頻繁に必要なメソッドを示しています-
以下に、wx.Menuの最も一般的に使用されるメソッドを示します
S.N. | Methods & Description |
---|---|
1 |
Append() メニューにメニュー項目を追加します |
2 |
AppendMenu() サブメニューを追加します |
3 |
AppendRadioItem() 選択可能なラジオ項目を追加します |
4 |
AppendCheckItem() チェック可能なメニュー項目を追加します |
5 |
AppendSeparator() 区切り線を追加します |
6 |
Insert() 指定された位置に新しいメニューを挿入します |
7 |
InsertRadioItem() 指定された位置にラジオアイテムを挿入します |
8 |
InsertCheckItem() 指定された位置に新しいチェック項目を挿入します |
9 |
InsertSeparator() 区切り線を挿入します |
10 |
Remove() メニューからアイテムを削除します |
11 |
GetMenuItems() メニュー項目のリストを返します |
メニュー項目を定義するには、追加するメニューを指定する必要があります。
wxPythonには、標準メニュー項目に割り当てられる多数の標準IDがあります。 一部のOSプラットフォームでは、標準アイコンにも関連付けられています。
wx.ID_SEPARATOR | wx.ID_ANY | wx.ID_OPEN | wx.ID_CLOSE | wx.ID_NEW | wx.ID_SAVE | wx.ID_SAVEAS | wx.ID_EDIT | wx.ID_CUT | wx.ID_COPY | wx.ID_PASTE |
ただし、一意の整数をIDとして割り当てることができます。 テキストパラメータはそのキャプションです。 種類のパラメータは、次の列挙子のいずれかを取ります-
S.N. | Parameters & Description |
---|---|
1 |
wx.ITEM_NORMAL 通常のメニュー項目 |
2 |
wx.ITEM_CHECK メニュー項目の確認(または切り替え) |
3 |
wx.ITEM_RADIO ラジオメニュー項目 |
wx.Menuクラスには、種類パラメーターを必要としないAppendRadioItem()およびAppendCheckItem()もあります。
メニュー項目を設定して、アイコンまたはショートカットを表示できます。 wx.MenuItemクラスのSetBitmap()関数では、ビットマップオブジェクトを表示する必要があります。
EVT_MENUイベントバインダーは、メニュー選択の処理に役立ちます。
例
次の例は、wxPythonの上記のメニューシステムの機能のほとんどを示しています。 メニューバーにファイルメニューが表示されます。 通常のメニュー項目、サブメニュー、ラジオ項目、チェック項目が追加されます。 アイコンのあるメニュー項目も存在します。
イベントハンドラは、呼び出されると、イベントに関連付けられたIDを取得し、さらに処理できます。 たとえば、「新規」メニュー項目が選択されている場合、フレームのテキストボックスにエコーされます。
完全なコードは次のとおりです-
上記のコードは、次の出力を生成します-