-1
ラジオボタンを押してから送信ボタンを押したときにコードが何も印刷されないのはなぜですか?たとえば、 "Open Save"ラジオボタンを押すと、入力を空白のままにしてsubmitを押すと "test2"が印刷されますが、何をしても何も印刷されません。私のコードで何も印刷されないのはなぜですか?
def Saves():
global saveordelete
saveordelete = 0
global savedname
def openthesave():
saveordelete = 1
def deletethesave():
saveordelete = 2
def opensave():
if saveordelete == 1:
openname = savedname.get() + ".txt"
my_file = Path(openname)
if my_file.is_file():
print("tes1")
else:
print("test2")
elif saveordelete == 2:
openname = savedname.get() + ".txt"
my_file = Path(openname)
if my_file.is_file():
print("test3")
else:
print("test4")
root = Tk()
root.title("Saves")
root.iconbitmap("morseicon.ico")
root.resizable(0,0)
Label(root, text="Name:").grid(row=0, column=0, sticky=W)
savedname = Entry(root, width=20)
savedname.grid(row=0, column=1)
Button(root, text="Submit", width=10, command=opensave, bg="aqua").grid(row=3, column=8)
Label(root, text="Choose kind:").grid(row=1, column=0, sticky=W)
Radiobutton(root, text="Open save", height="1", command=openthesave, value=1).grid(row=2, column=0, sticky=W)
Radiobutton(root, text="Delete save", height="1", command=deletethesave, value=2).grid(row=3, column=0, sticky=W)
root.mainloop()
'opensave'関数内の' saveordelete'の値は、 'openthesave'と' deletethesave'内の値を変更しているときに元の変数を更新するのではなく、いつも '0'になります。関数内の変数(その関数内のスコープ付き) –