1コンボボックスの状態に応じてコンボボックス2に異なる値を表示させたい。また、コンボボックス2は、入力ボックスの状態を変更します。私が理解できないのは、on_field_change関数が問題なく動作するのですが、check_websiteは私にTypeError: trace_variable() missing 1 required positional argument: 'callback'
というエラーを与えます。どうして?助言がありますか?tkinterのトレース方法
import tkinter as tk
from tkinter import ttk
main = tk.Tk()
app = tk.Frame(main)
app.grid()
def on_field_change(index, value, op):
if novel.get() in has_book_website1:
book_number_chosen.configure(state="enabled")
else:
book_number_chosen.configure(state="disabled")
def check_website(index, value, op):
if website.get() == "Website1":
novel_chosen["values"] = namelist_website1
elif website.get() == "Website2":
novel_chosen["values"] = namelist_website2
website = tk.StringVar
website_chosen = ttk.Combobox(app, width=42, textvariable=website,
state="readonly")
website.trace("w", check_website)
website_chosen["values"] = ["Website1", "Website12"]
website_chosen.current(0)
website_chosen.grid(column=1, row=0)
book_number = tk.IntVar()
book_number_chosen = ttk.Entry(app, width=5, textvariable=book_number,
state="disabled")
novel = tk.StringVar()
novel_chosen = ttk.Combobox(app, width=42, textvariable=novel,
state="readonly")
novel.trace("w", on_field_change)
novel_chosen["values"] = ["1", "2"]
novel_chosen.grid(column=1, row=1)
novel_chosen.current(0)
has_book_website1 = ["2"]
namelist_website1 = ["Just", "some", "text"]
namelist_website2 = ["lorem", "ipsum"]
main.mainloop()
コードの切断されたブロックの束ではなく[mcve]を作成してください。 –
投稿を編集しました。急いで、白い騎士が解決策を見つけたときに戻ってくることを望んでいました。 – BloodViolet
'web = tk.StringVar'行の最後に括弧がないことに気づいていますか? – CommonSense