如何将.get()函数与单选按钮一起使用

时间:2013-01-10 15:15:33

标签: python radio-button tkinter

我正在尝试用RadioButton制作一个基本的绘图程序来确定画笔的形状。

self.choseo = Radiobutton(text='Circle', variable=shape,indicatoron=0, value=1)
self.choser = Radiobutton(text='Rectangle', variable=shape,indicatoron=0, value=2)
self.chosea = Radiobutton(text='Arc', variable=shape,indicatoron=0, value=3)

对应于:

   if shape.get()==3:
      self.display.create_arc( self.x1, self.y1, self.x2,
          self.y2, fill = mycolor, outline= mycolor, tags = "line")
   elif shape.get()==2:
      self.display.create_rectangle( self.x1, self.y1, self.x2,
          self.y2, fill = mycolor, outline= mycolor, tags = "line")
   elif shape.get()==1:
      self.display.create_oval( self.x1, self.y1, self.x2,
          self.y2, fill = mycolor, outline= mycolor, tags = "line")

当我运行时,我收到此错误:

"TypeError: get() takes exactly 1 argument (0 given)"

我如何使这项工作?

1 个答案:

答案 0 :(得分:4)

您没有告诉shape是什么,但您应该确保使用IntVar的实例。

请尝试以下代码:

from Tkinter import *
master = Tk()
shape = IntVar() # ensure you use an instance of IntVar
Radiobutton(text='Circle', variable=shape, indicatoron=0, value=1, master=master).pack()
Radiobutton(text='Rectangle', variable=shape, indicatoron=0, value=2, master=master).pack()
Radiobutton(text='Arc', variable=shape, indicatoron=0, value=3, master=master).pack()

shape.get()将以您想要的方式运作。