Python-tk-menu

提供:Dev Guides
移動先:案内検索

Python-Tkinterメニュー

このウィジェットの目的は、アプリケーションで使用できるあらゆる種類のメニューを作成できるようにすることです。 コア機能は、ポップアップ、トップレベル、プルダウンの3つのメニュータイプを作成する方法を提供します。

他の拡張ウィジェットを使用して、選択範囲内の項目のポップアップリストを生成する特別なタイプを実装する_OptionMenu_ウィジェットなどの新しいタイプのメニューを実装することもできます。

構文

このウィジェットを作成するための簡単な構文は次のとおりです-

w = Menu ( master, option, ... )

パラメーター

  • master -これは親ウィンドウを表します。
  • オプション-これは、このウィジェットで最も一般的に使用されるオプションのリストです。 これらのオプションは、カンマで区切られたキーと値のペアとして使用できます。
Sr.No. Description
1

activebackground

マウスの下にある選択肢に表示される背景色。

2

activeborderwidth

マウスの下にあるときに選択肢の周囲に描画される境界線の幅を指定します。 デフォルトは1ピクセルです。

3

activeforeground

マウスの下にあるときに選択肢に表示される前景色。

4

bg

マウスの下にない選択肢の背景色。

5

bd

すべての選択肢の周囲の境界線の幅。 デフォルトは1です。

6

cursor

マウスが選択肢の上にあるときに表示されるカーソル。ただし、メニューが切り取られた場合のみ。

7

disabledforeground

状態がDISABLEDのアイテムのテキストの色。

8

font

テキスト選択のデフォルトのフォント。

9

fg

マウスの下にない選択肢に使用される前景色。

10

postcommand

このオプションをプロシージャに設定すると、誰かがこのメニューを表示するたびにそのプロシージャが呼び出されます。

11

relief

メニューのデフォルトの3D効果は、relief = RAISEDです。

12

image

このメニューボタンに画像を表示します。

13

selectcolor

チェックボタンとラジオボタンが選択されたときに表示される色を指定します。

14

tearoff

通常、メニューを切り離すことができ、選択肢のリストの最初の位置(位置0)はティアオフ要素で占められ、位置1から追加の選択肢が追加されます。 tearoff = 0を設定すると、メニューにはティアオフ機能がなくなり、選択肢は位置0から追加されます。

15

title

通常、ティアオフメニューウィンドウのタイトルは、このメニューにつながるメニューボタンまたはカスケードのテキストと同じになります。 そのウィンドウのタイトルを変更する場合は、タイトルオプションをその文字列に設定します。

方法

これらのメソッドは、メニューオブジェクトで利用可能です-

Sr.No. Option & Description
1

add_command (options)

メニューにメニュー項目を追加します。

2

add_radiobutton( options )

ラジオボタンメニュー項目を作成します。

3

add_checkbutton( options )

チェックボタンメニュー項目を作成します。

4

add_cascade(options)

指定されたメニューを親メニューに関連付けることにより、新しい階層メニューを作成します

5

add_separator()

メニューに区切り線を追加します。

6

add( type, options )

特定のタイプのメニュー項目をメニューに追加します。

7

delete( startindex [, endindex ])

startindexからendindexまでのメニュー項目を削除します。

8

entryconfig( index, options )

インデックスによって識別されるメニュー項目を変更し、そのオプションを変更できます。

9

index(item)

指定されたメニュー項目ラベルのインデックス番号を返します。

10

insert_separator ( index )

インデックスで指定された位置に新しいセパレータを挿入します。

11

invoke ( index )

位置インデックスの選択に関連付けられたコマンドコールバックを呼び出します。 チェックボタンの場合、その状態は設定とクリアの間で切り替わります。ラジオボタンの場合、その選択が設定されます。

12

type ( index )

インデックスで指定された選択肢のタイプを返します:「cascade」、「checkbutton」、「command」、「radiobutton」、「separator」、または「tearoff」。

自分で次の例を試してください-

from Tkinter import *

def donothing():
   filewin = Toplevel(root)
   button = Button(filewin, text="Do nothing button")
   button.pack()

root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)

filemenu.add_separator()

filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)

editmenu.add_separator()

editmenu.add_command(label="Cut", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
editmenu.add_command(label="Delete", command=donothing)
editmenu.add_command(label="Select All", command=donothing)

menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)

root.config(menu=menubar)
root.mainloop()

上記のコードが実行されると、次の結果が生成されます-

TKメニュー