python初心者です。図形をtkinterとturtleで書くコードを作っていて、円の色と多角形の色を別で書かせようとしているのですが、以下のエラーコードが出てしまいました。どうしたらいいでしょうか。
エラーコードを調べて、渡す引数が本来より多くなってしまっていることが分かったのですが、どこを変更すべきかわかりません。
エラーコード
python
1 line 90, in circle 2 circle(int(get_txt4)) 3TypeError: circle() takes 0 positional arguments but 1 was given
該当のソースコード
python
1import tkinter as tk 2from turtle import* 3from tkinter import StringVar 4 5root = tk.Tk() 6root.geometry('300x600') 7 8frame = tk.Frame(root, width=300, height=300, bg="white") 9frame.place(x=100, y=140) 10lblL = tk.Label(text='x角形の色') 11lblL.place(x=25, y=140) 12 13 14 15var = StringVar(value=['black', 'red', 'blue', 'yellow', 'pink', 'green','white']) 16listbox0 = tk.Listbox(frame, 17 listvariable=var, 18 height=5) 19listbox0.pack() 20 21frame1 = tk.Frame(root, width=300, height=300, bg="white") 22frame1.place(x=100, y=320) 23lblL1 = tk.Label(text='円の色') 24lblL1.place(x=25, y=220) 25 26 27 28var = StringVar(value=['black', 'red', 'blue', 'yellow', 'pink', 'green','white']) 29listbox1 = tk.Listbox(frame, 30 listvariable=var, 31 height=5) 32listbox1.pack() 33 34lbl0 = tk.Label(text='x角形') 35lbl0.place(x=25,y=40) 36txt0 = tk.Entry(width=20) 37txt0.place(x=100, y=40) 38 39lbl3 = tk.Label(text='一辺の長さ') 40lbl3.place(x=25,y=60) 41txt3 = tk.Entry(width=20) 42txt3.place(x=100, y=60) 43 44lbl2 = tk.Label(text='x角形の数') 45lbl2.place(x=25,y=80) 46txt2 = tk.Entry(width=20) 47txt2.place(x=100, y=80) 48 49lbl1 = tk.Label(text='描きたい円の数') 50lbl1.place(x=25,y=100) 51txt1 = tk.Entry(width=20) 52txt1.place(x=100, y=100) 53 54lbl4 = tk.Label(text='半径') 55lbl4.place(x=25,y=120) 56txt4 = tk.Entry(width=20) 57txt4.place(x=100, y=120) 58 59 60def col1(): 61 if len(listbox0.curselection()) == 0: 62 return 63 index = listbox0.curselection()[0] 64 pencolor(listbox0.get(index)) 65 66def col2(): 67 if len(listbox1.curselection()) == 0: 68 return 69 index = listbox1.curselection()[0] 70 pencolor(listbox1.get(index)) 71 72def draw(): 73 get_txt0 = txt0.get() 74 get_txt2 = txt2.get() 75 get_txt3 = txt3.get() 76 for i in range(int(get_txt2)): 77 left(360 / int(get_txt2)) 78 for i in range(int(get_txt0)): 79 forward(int(get_txt3)) 80 left(360 / int(get_txt0)) 81 82 83 84 85 86def circle(): 87 get_txt1 = txt1.get() 88 get_txt4 = txt4.get() 89 for i in range(int(get_txt1)): 90 circle(int(get_txt4)) 91 left(360 / int(get_txt1)) 92 93 94 95 done() 96hideturtle() 97btn = tk.Button(text = '実行', command=lambda:[col1(), draw(), col2(), circle()],bg='RoyalBlue2',fg='green2') 98btn.pack(fill = 'x', padx=30) 99 100 101tk.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/14 08:42