我是相對較新的python,我試圖讓我的第一個GUI。我有一個回調函數,我嘗試執行該操作,它改變了GUI窗口的背景顏色,具體取決於Radiobutton的按下情況。下面是代碼:如何在jupyter或spyder中使用ipython控制檯啓用回調函數?
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()
當我在文本編輯器編寫之後執行該腳本,它完美的作品,但是當我嘗試在一個互動的環境,如Spyder的執行相同的代碼(減去win.mainloop)或jupyter筆記本,則會出現單選按鈕,但不會執行背景顏色更改。我懷疑這與它涉及回調函數的事實有關,但我不積極。我應該如何編輯我的代碼以使其在交互式shell中工作,或者更好地設置使用回調函數的交互式環境?
感謝您的回覆。我忘了提及在運行代碼時添加%gui tk,以便GUI隨代碼動態變化。我認爲它可能與回調有關的原因是我認爲問題出現在代碼的radVar.get()部分。似乎無法解決此問題,因此它使用回調函數來檢索它。 –
在定義'win = tk.TK()'時,頂部定義'radVar = tk.IntVar()'怎麼辦? – deaspo
試過,也沒有運氣。感謝您的建議 –