python单选按钮重置_python – Tkinter单选按钮初始化错误
存儲變量對象的位置(StringVar,v,在您的情況下)必須保持不變,以便這種奇怪的行為不會出現(xiàn).我的猜測是我們看到這種行為因為v超出了范圍,出了問題.除了使用全局之外,我無法想到從函數(shù)中執(zhí)行此操作的方法.
破碼:
from Tkinter import *
def App(master):
v = StringVar()
v.set('python')
lable1 = Label(master, text=' hovering over below radio buttons will cause them to look like they are selected')
lable1.pack()
runtimeFrame = Frame(master, relief=GROOVE, borderwidth=3)
runtimeFrame.pack(fill=X, pady=5, padx=5)
for mode in ['java', 'python', 'jython']:
b = Radiobutton(runtimeFrame, text=mode, variable=v, value=mode, indicatoron=1)
b.pack(side=LEFT)
if __name__ == '__main__':
master = Tk()
App(master)
mainloop()
示例修復(fù):
from Tkinter import *
def App(master, radio_var):
radio_var.set('python')
lable1 = Label(master, text=' hovering over below radio buttons will cause them to look like they are selected')
lable1.pack()
runtimeFrame = Frame(master, relief=GROOVE, borderwidth=3)
runtimeFrame.pack(fill=X, pady=5, padx=5)
for mode in ['java', 'python', 'jython']:
b = Radiobutton(runtimeFrame, text=mode, variable=radio_var, value=mode, indicatoron=1)
b.pack(side=LEFT)
if __name__ == '__main__':
master = Tk()
radio_var = StringVar()
App(master, radio_var)
mainloop()
考慮一下,如果你有多個需要持久化的變量,你可以傳入一個變量列表或字典.
此外,如果“必須在函數(shù)中”是作業(yè)分配要求,請考慮將代碼包裝在類中.我不是tk專家,但這似乎是組織代碼的首選方式.
示例修復(fù)2:
from Tkinter import *
class App(object):
def __init__(self, master):
self.radio_var = StringVar()
self.radio_var.set('python')
lable1 = Label(master, text=' hovering over below radio buttons will cause them to look like they are selected')
lable1.pack()
runtimeFrame = Frame(master, relief=GROOVE, borderwidth=3)
runtimeFrame.pack(fill=X, pady=5, padx=5)
for mode in ['java', 'python', 'jython']:
b = Radiobutton(runtimeFrame, text=mode, variable=self.radio_var, value=mode, indicatoron=1)
b.pack(side=LEFT)
if __name__ == '__main__':
master = Tk()
app = App(master)
mainloop()
注意一個微小的變化
app = App(master)
這是必需的,以便App實例不會過早地進(jìn)行垃圾回收.這將有效地將self.radio_var拉出范圍,我們又回到了第一個方向.
總結(jié)
以上是生活随笔為你收集整理的python单选按钮重置_python – Tkinter单选按钮初始化错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想念一个人的心情短语,句句暖心,甜到心坎
- 下一篇: 心理脆弱的根本原因