class Radiobutton 放在类中出错
from tkinter import *class Speed:
def __init__(self,root):
speedFrame = Frame(root)
speed = IntVar()
speed_F = Radiobutton(speedFrame, text='Fast', variable=speed, value=1)
speed_S = Radiobutton(speedFrame, text='Slow', variable=speed, value=0)
speed_F.pack()
speed_S.pack()
speedFrame.pack()
root = Tk()
speed = Speed(root)
speedFrame = Frame(root)
speed = IntVar()
speed_F = Radiobutton(speedFrame, text='Fast2', variable=speed, value=1)
speed_S = Radiobutton(speedFrame, text='Slow2', variable=speed, value=0)
speed_F.pack()
speed_S.pack()
speedFrame.pack()
mainloop()
Radiobutton写到class中就出错了,(1)鼠标滑过时会被选中,(2)不能显示默认项。求教这是为什么?
from tkinter import *
class Speed:
def __init__(self,root):
speedFrame = Frame(root)
self.speed = IntVar()
self.speed_F = Radiobutton(speedFrame, text='Fast', variable=speed, value=1)
self.speed_S = Radiobutton(speedFrame, text='Slow', variable=speed, value=0)
self.speed_F.pack()
self.speed_S.pack()
speedFrame.pack()
root = Tk()
speed = Speed(root)
speedFrame = Frame(root)
speed = IntVar()
speed_F = Radiobutton(speedFrame, text='Fast2', variable=speed, value=1)
speed_S = Radiobutton(speedFrame, text='Slow2', variable=speed, value=0)
speed_F.pack()
speed_S.pack()
speedFrame.pack()
mainloop()
类中 speed 重新赋值导致触发屏蔽机制,试试这样:
from tkinter import *
class Speed:
def __init__(self,root):
global speed
speedFrame = Frame(root)
speed2 = IntVar()
speed_F = Radiobutton(speedFrame, text='Fast', variable=speed2, value=1)
speed_S = Radiobutton(speedFrame, text='Slow', variable=speed2, value=0)
speed_F.pack()
speed_S.pack()
speedFrame.pack()
root = Tk()
speed = Speed(root)
speedFrame = Frame(root)
speed1 = IntVar()
speed_F = Radiobutton(speedFrame, text='Fast2', variable=speed1, value=1)
speed_S = Radiobutton(speedFrame, text='Slow2', variable=speed1, value=0)
speed_F.pack()
speed_S.pack()
speedFrame.pack()
mainloop()
或者在 __init__ 下 添加一行 global speed
贴上运行正确的代码
from tkinter import *
class Speed:
def __init__(self,root):
root.speedFrame = Frame(root)
self.speed = IntVar()
speed_F = Radiobutton(root.speedFrame, text='Fast', variable=self.speed, value=1)
speed_S = Radiobutton(root.speedFrame, text='Slow', variable=self.speed, value=0)
speed_F.pack()
speed_S.pack()
root.speedFrame.pack()
root = Tk()
speed = Speed(root)
mainloop()
页:
[1]