前提
文字が書かれた図形をドラッグできる機能を作成しています。
実現したいこと
マウスで文字と図形をグループ化して、一緒にドラッグできるようにしたい
発生している問題・エラーメッセージ
マウスでドラッグしようとすると、文字だけ、図形だけ別々に移動してしまいます。
初心者なので、テキストと図形をグループ化して処理を行う方法がわかりません。
お優しい方ご教授いただけますと幸いです。
該当のソースコード
import sys
import tkinter as tk1
'''図形のクリックイベント'''
def zukei_click(event):
global figure
global before_x, before_y
x = event.x
y = event.y
figure = c0.find_closest(x, y)
before_x = x
before_y = y
def zukei_drag(event):
global before_x, before_y
x = event.x
y = event.y
c0.move(figure,x - before_x, y - before_y)
before_x = x
before_y = y
def main():
global c0
global oval_id
global text_id
app = tk1.Tk()
app.title(u"Software Title")
c0 = tk1.Canvas(app, width = 500, height = 300,bg="white")
oval_id = c0.create_oval(10, 10, 140, 100, tags = 'o')
c0.itemconfigure(oval_id, fill = 'lightblue', outline = 'blue')
oval_pos = c0.coords(oval_id)
text_id = c0.create_text(10, 10, text='こんにちは')
text_size = c0.bbox(text_id)
oc_x = oval_pos[2] / 2
oc_y = oval_pos[3] / 2
tc_x = text_size[2] / 2
tc_y = text_size[3] / 2
c0.move(text_id, oc_x - ( oval_pos[0]/2 ), oc_y - tc_y)
c0.tag_bind(oval_id, "<ButtonPress-1>", zukei_click)
c0.tag_bind(oval_id, "<Button1-Motion>", zukei_drag)
c0.tag_bind(text_id, "<ButtonPress-1>", zukei_click)
c0.tag_bind(text_id, "<Button1-Motion>", zukei_drag)
c0.pack()
app.mainloop()
if name == "main":
main()
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/08/06 16:10
2022/08/06 23:40
2022/08/07 08:54
2022/08/07 10:40
2022/08/08 01:55