pysimpleGUIにて、簡単なGUIを作成しようとしております。
python
1import PySimpleGUI as sg 2 3def change(window): 4 text = window["mode"].DisplayText 5 if text == "読込": 6 window["mode"].update("編集") 7 else: 8 window["mode"].update("読込") 9 10 11def right_list(window): 12 menu = [] 13 text = window["mode"].DisplayText 14 if text == "編集": 15 menu = ["that",["コピー",'---',"!切り取り",'---',"!貼り付け"]] 16 else: 17 menu = ["that",["コピー",'---',"切り取り",'---',"貼り付け"]] 18 return menu 19 20 21layout = [ 22 [sg.T("読込", key="mode")], 23 [sg.Multiline("おはようございます!", key="letter", disabled=True)], 24 [sg.B("切替")] 25] 26 27window = sg.Window("TEST", layout, finalize=True) 28 29while True: 30 event, values = window.read() 31 32 if event is None: 33 break 34 elif event == "切替": 35 change(window) 36 37window.close()
上記のコードで、
def right_list(window)
の関数を、Multilineのright_click_menuに設定したいと考えております。
layoutの中に
[sg.Multiline("おはようございます!", key="letter", disabled=True, right_click_menu=right_list(window))],
というようにright_click_menuを設定しても、windowが定義されてませんとなります。
また、
window = sg.Window("TEST", layout, finalize=True)
window["letter"].update(right_click_menu=right_list(window))
しても、right_click_menuはupdateに対応しておりません、とエラーが出ます。
どのようにright_click_menuに設定すればよろしいでしょうか?
どうぞよろしくお願い致します。
あなたの回答
tips
プレビュー