Comboboxの値判定にvalidateオプションを用いたい
独学でGUI開発の勉強をしています。
Comboboxに値を入力(リストから選択した場合も含めて)したとき、その値について判定するプログラムを組みたいと思っています。
が、特にエラーは出ていないにも拘らず、思ったように動いてくれません。
該当のコードでは、入力値が"aa"のときは、メッセージボックスを表示して、値が"zz"になるようにしたいです。
どこにミスがあって値の判定が実現していないか、教えていただきたいです。
よろしくお願いします。
該当のソースコード
python
1import tkinter as tk 2import tkinter.ttk as ttk 3from tkinter import messagebox 4 5 6root = tk.Tk() 7 8lst = ["aa", "bb", "cc", "dd", "ee"] 9 10 11def cmd(p, s): 12 print(p) <--- 値がprintされないため、そもそもこの関数が実行されていないようです 13 print(s) 14 if p[0:1] == "a": 15 messagebox.showinfo("確認", "値が%sです!" % p) 16 cb.set("zz") 17 return True 18 19v = tk.StringVar() 20cb = ttk.Combobox(root, textvariable=v, values=lst, width=20, validatecommand=(cmd, "%P", "%s"), validate="all") 21cb.set(lst[0]) 22cb.pack() 23 24 25root.mainloop()
補足情報(FW/ツールのバージョンなど)
Windows10
Python 3.8.3
tk 8.6.10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/04 08:40