filemenu.entryconfig()
にて stateを書き換えると良いかと思います。
Python
1import tkinter as tk
2root = tk.Tk()
3
4def editsettings():
5 pass
6
7def open_file():
8 pass
9
10def save_file():
11 pass
12
13def save_file_as_filename():
14 pass
15
16menu = tk.Menu(root)
17filemenu = tk.Menu(root, tearoff=0)
18filemenu.add_command(label="新規作成", command=editsettings) #index:0
19filemenu.add_command(label="開く", command=open_file) #index:1
20filemenu.add_command(label="保存", command=save_file) #index:2
21filemenu.add_command(label="名前を付けて保存", command=save_file_as_filename, state="disabled") #index:3
22root.config(menu=menu)
23menu.add_cascade(label='ファイル', menu=filemenu)
24
25# stateのnormal/disabledを切り替える
26def toggle_state():
27 #"名前を付けて保存"コマンド(index=3) の state を取得
28 state = filemenu.entrycget(3, 'state')
29 if state == 'disabled':
30 #"名前を付けて保存"コマンド(index=3) の state を設定
31 filemenu.entryconfig(3, state='normal')
32 else:
33 #"名前を付けて保存"コマンド(index=3) の state を設定
34 filemenu.entryconfig(3, state='disabled')
35
36btn = tk.Button(root, text="TEST", command=toggle_state)
37btn.pack()
38
39root.mainloop()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。