59354


tk.Canvasでアイコンイメージとそれに付随するテキストをドラッグで移動させるコードがあります。  
しかし、オブジェクトに与えるtagによって、find_withtag()メソッドから正常にidが戻ってきません。よって、move()メソッドも正常に機能しません。

self.drag に操作する対象のtagを格納しております。

[code]

    tag_list = list()
    for weight in self.canvas.find_all():
        t = [ (weight,tags) for tags in self.canvas.gettags(weight) if self.drag_obj in tags]
        tag_list.append(t)
    
    print(tag_list)
    print(self.canvas.find_withtag(self.drag_obj) )
    
    self.canvas.move(self.drag_obj,dx,dy)
    
[/code]

正常時の戻り

[code]

    [[], [], [], [], [], [], [], [], [], [], [(3, '000330208100')], [(4, '000330208100'), (4, '000330208100name')]]
    (3, 4)
    
[/code]

異常時の戻り

[code]

    [[], [], [], [], [], [], [], [], [], [], [], [], [(13, '112233445566')], [(14, '112233445566'), (14, '112233445566name')]]
    ()
    
[/code]

リスト上では、'000330208100'、'112233445566'のタグを持つオブジェクトはそれぞれ二つ発見できているのに、find_withtag()では、'112233445566'のときに空で戻ってきてしまいます。

tagとして与える値に何か制約があるのでしょうか？  
ご存知の方はご教示をお願いします。


CC BY-SA 4.0
2019-09-06T06:24:03.377
57901
2019-09-30T07:58:08.083
2019-09-06T09:06:15.480
3060
32891
question
python python3 tkinter
python tk.Canvas find_withtagで正常にidが返らない問題


英語サイトのほうで質問したところ、回答をいただけました。  
tagsに整数を使用していたため、idなのかTagなのか判別できなかったことが原因でした。

<https://stackoverflow.com/questions/57862969/why-does-the-return-value-from-
the-tk-canvas-find-withtag-method-become-empty/57863222#57863222>


CC BY-SA 4.0
2019-09-30T07:58:08.083
59354
2019-09-30T07:58:08.083
32891
57901
answer