Pythonで図形の削除

Python->Tkinter->Canvasで描写したオブジェクトを削除します。


図形を消すにはCanvasのdeleteメソッドを使いやす。
canvas.delete(idまたはtag)

前回のソースをちょいといじって

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
import Tkinter

class CanvasOval:
canvas = None

def __init__(self, x0, y0, x1, y1, **key):
self.id = self.canvas.create_oval(x0, y0, x1, y1, **key)
self.canvas.tag_bind(self.id, '<1>', self.delete)

def delete(self, event):
self.canvas.delete(self.id)


class Frame(Tkinter.Frame):

def __init__(self, master=None):
Tkinter.Frame.__init__(self, master)
self.cvs = Tkinter.Canvas(self,width="200", height="200", bg="white")
self.cvs.grid(row=0, column=0)

CanvasOval.canvas=self.cvs
CanvasOval(40, 40, 50, 50, fill="red", width=0)
CanvasOval(130, 130, 170, 170, fill="red", width=0)

if __name__ == '__main__':
f = Frame()
f.pack()
f.mainloop()


up_20080819053815.jpg

これで8行目でクリックでCanvasOvalのdeleteメソッドが呼び出されるようにバインドされているので、クリックされたオブジェクトが消えるようになります。

目次へ
関連記事

コメント

コメントの投稿

非公開コメント

このブログについて
□ ブログ内容
決まった趣旨はありません。
興味を持ったこと・日常で行ったことを何でも書きます。

3DCG・プログラミングなどが多めです。

□ 現在の活動
・ウェブサイト制作
 (http://tiblab.net)
・3Dゲーム制作
 (コックパニック)
検索フォーム
ユーザータグ

Blender キャプチャ blendファイル BGE Python GameEngine ムービー Android CG  Red5 Terragen C# C++ 

カテゴリー
プロフィール

TiBra

Author:TiBra
趣味でCG制作、プログラミング等を行っています。メイカーズに憧れています。

ネットを通じた交流を広げたく思っていますので、コメント・メールはお気軽にどぞー

戯言程度のことは、こちらのブログに投稿しています。基本戯言なので、実質移転しているようなものです。

Mail:tibraあっとlive.jp
HP:TibLabmemocode
動画:VimeoFC2動画ニコニコ
ファイル:SkyDrive
企画:3Dゲーム作業実況

Blogリンク
不都合がございましたらご連絡ください。
当ブログのリンクバナー
FC2 ID
FC2カウンター
RSSフィード+解析コード