我对python比较陌生,我正在尝试制作我的第一个GUI。我有一个回调函数,我正试图执行它根据单选按钮的按下改变GUI窗口的背景色。代码如下:
import tkinter as tk
win = tk.Tk()
win.title("Python GUI")
colors = ["Blue", "Gold", "Red"]
def radCall():
radSel=radVar.get()
if radSel == 0: win.configure(background=colors[0])
elif radSel == 1: win.configure(background=colors[1])
elif radSel == 2: win.configure(background=colors[2])
radVar = tk.IntVar()
radVar.set(99)
for col in range(3):
curRad = 'rad' + str(col)
curRad = tk.Radiobutton(win, text=colors[col], variable=radVar, value=col, command=radCall)
curRad.grid(column=col, row=6, sticky=tk.W)
win.mainloop()
当我在文本编辑器中编写脚本后执行它时,它可以完美地工作,但是当我尝试执行相同的代码时(减win.mainloop)在spyder或jupyter notebook等交互式环境中,单选按钮会出现,但不会执行背景颜色更改。我怀疑这与一个回调函数有关,但我不确定。我应该如何编辑我的代码,使其在交互式shell中工作,或者更好地为使用回调函数设置交互式环境?在
尝试在Spyder中运行代码,但首先必须说:
要启动程序,必须使用mainloop()
我使用/不使用win.mainloop注意到没有win.mainloop,因为第1点,代码运行而不是GUI被创建。和win.mainloop(),注意到窗口很小,所以我不得不将其展开以查看更改,否则虽然它无法正常工作。建议增加窗口大小或设置最小大小,例如
win.minsize(width=XXX,height=XXX)
最好使用:
如果名称='main': win.mainloop()
除非您给出更多解释,否则不能在没有.mainloop()的情况下运行程序
相关问题 更多 >
编程相关推荐