質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

2198閲覧

Python3 図形のDrag&Dropについて

IOError

総合スコア25

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2016/10/30 03:03

Python3のTkを使って、ドラッグによる図形の移動を考えています。

Python3

1root = Tk() 2canvas = Canvas(root, width = 300, height = 300)

としています。(これはソースコードの一部分です)
canvas.tag_bind("図形のid", "<Button-1-Motion>", "関数")
で図形がマウスに合わせてドラッグするということは実装できました。
問題はここからです。このドラッグされた図形が別の図形の上で離されたかどうかを判定するやり方だわかりません。
具体的に言いますと、例えば円と四角い図形があり、円をドラッグによって移動させ四角の上で離された時に、その円を消すということを実装したいです。
おそらくcanvas.tag_bind()を使うとは思うのですが、どのようにすれば良いのでしょうか。

どなたかわかる方がいらっしゃいましたらご教授お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

指定した図形をけすのであれば、

lang

1canvas.delete("tag名")

でできます。

投稿2016/10/30 08:25

nnahito

総合スコア2004

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

IOError

2016/10/30 08:57

ご回答ありがとうございます。 確かにcanvas.delete()で図形を消すことはできます。 しかし、円をドラッグしていて、四角形の上で離された時にのみ円を消すという、条件が満たされた時だけ図形を消すということをしたいです。 ドラッグが終了したというのはマウスイベントの<ButtonRelease-1>でできると思いますが、このイベントはすでに他の機能で使用しています。同一のイベントに対して処理を複数種類持たせることはできるのでしょうか? 説明が足らず申し訳ありません。
nnahito

2016/10/30 09:03

>ドラッグが終了したというのはマウスイベントの<ButtonRelease-1>でできる (中略) >このイベントはすでに他の機能で使用しています ということであれば、四角の中に円がきたときの判定と、円の削除の関数を定義しておき、 <ButtonRelease-1>が呼び出されたときに一緒に呼び出せば良い気もしますが……如何でしょう?
IOError

2016/10/31 06:17

ご回答ありがとうございます。 nnahitoさんのアドバイスをヒントに、以下のようにしてみました。 <ButtonRelease-1>で関数1にとび、関数1で関数2を実行するのか関数3を実行するのかを条件分岐させる コードを書いて実行してみたところうまくできたようです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問