1

ブラシの形状を決定するために 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)"

どうすればこれを機能させることができますか?

4

1 に答える 1

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()、あなたが望むように動作します。

于 2013-01-10T15:30:44.053 に答える