-1
我在lynda.com上學習Python GUI,由於某種原因,我的代碼不工作,而導師的代碼工作得很好。我將導師的工作複製到了我的代碼中,但仍然無效。Python tkinter radiobutton部件,顏色不會改變
這裏是我的代碼:
import tkinter as tk
from tkinter import ttk
win = tk.Tk()
win.title("Python GUI")
COLOR1 = "Blue"
COLOR2 = "Gold"
COLOR3 = "Red"
# Radiobutton Callback
def radCall():
radSel = radVar.get()
if radSel == 1: win.configure(background=COLOR1)
elif radsel == 2: win.configure(background=COLOR2)
elif radsel == 3: win.configure(background=COLOR3)
# create three Radiobuttons using one variable
radVar = tk.IntVar()
rad1 = tk.Radiobutton(win, text=COLOR1, variable=radVar, value=1, command=radCall)
rad1.grid(column=0, row=5, sticky=tk.W, columnspan=3)
rad2 = tk.Radiobutton(win, text=COLOR2, variable=radVar, value=2, command=radCall)
rad2.grid(column=1, row=5, sticky=tk.W, columnspan=3)
rad3 = tk.Radiobutton(win, text=COLOR3, variable=radVar, value=3, command=radCall)
rad3.grid(column=2, row=5, sticky=tk.W, columnspan=3)
win.mainloop()
的問題是,每當我點擊藍色單選按鈕,它的工作原理,而金色和紅色給我的錯誤我的終端上。
錯誤:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Joshua\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "radiobuttonwidget.py", line 60, in radCall
elif radsel == 2: win.configure(background=COLOR2)
NameError: name 'radsel' is not defined
同爲ELIF radsel == 3
在這種情況下,「贏」是什麼?你得到的錯誤是什麼? –
更新了我的問題。 win = tk.Tk() – joshua
錯誤告訴你到底發生了什麼問題。 –