1
"remove rect"ボタンをクリックしてキャンバス上のランダムなシェイプを削除しようとしました。私の方法はうまくいかないようです。私はこのエラーが発生し続ける、小さくなければならないが、私はそれを見つけることができない。あなたがコレクションに作成された矩形を追跡する必要がキャンバス上のdeleteメソッドtkinter
TypeError: removeRects() missing 1 required positional argument: 'canvas'
from tkinter import *
import random
root = Tk()
class Recta:
def __init__(self, height=60, width=80):
self.height = height
self.width = width
self.create_buttons()
self.canvas = Canvas(root)
self.canvas.pack()
def removeRects(self,canvas):
my_rect = self.canvas.create_rectangle(0,0,w,h,fill = "green")
self.canvas.delete(my_rect)
def create_buttons(self):
self.frame = Frame(root, bg='grey', width=400, height=40)
self.frame.pack(fill='x')
self.button1 = Button(self.frame, text='Rect', command=self.randomRects)
self.button1.pack(side='left', padx=10)
self.button2 = Button(self.frame, text='Remove Rect', command=self.removeRects)
self.button2.pack(side='left')
def randomRects(self):
w = random.randrange(300)
h = random.randrange(200)
self.canvas.create_rectangle(0, 0, w, h, fill= "green")
tes = Recta()
root.mainloop()
インポートTkinterのTK インポートランダムルート= tk.Tkとして()いただきましtk.Tk()? –
whats tkinter import * importランダム root = Tk()とtkinterをtk importとしてインポートします。ランダムルート= tk.Tk()whats tk.Tk() –
'tk.Tk()'が作成を呼び出しています'tk'モジュールの' Tk'オブジェクトの 'tkinter *'をインポートしました。私は 'tkinter as tk'をインポートしました。これは名前空間をきれいに保ちます。 'tkinter import *'から 'tkinter'のすべてのメソッドとクラスがあなたの名前空間に入ります。 tkinterをインポートするときには、tkinterメソッドとクラスの呼び出しに 'tk 'を付ける必要があります。 –