поэтому я обновился до python 3.1.1 с 2.6, и я запустил старую мою программу, которая использует tkinter.Почему у меня есть этот TypeError при использовании tkinter?
Появляется следующее сообщение об ошибке, которое я не помню, чтобы получить версию 2.6.
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python31\lib\tkinter\__init__.py", line 1399, in __call__
return self.func(*args)
File "C:\myprog.py", line 77, in <lambda>
self.canvas.bind("<Button-3>", lambda event: myfunc_sub(event))
File "C:\myprog.py", line 65, in myfunc_sub
temp_ids = self.canvas.find_overlapping(self.canvas.coords(name)[0], self.canvas.coords(name)[1], self.canvas.coords(name)[2],self.canvas.coords(name)[3])
TypeError: 'map' object is not subscriptable
Я уверен, что линия
temp_ids = self.canvas.find_overlapping(self.canvas.coords(name)[0], self.canvas.coords(name)[1], self.canvas.coords(name)[2],self.canvas.coords(name)[3])
было нормально в старой версии. Я не уверен, что изменилось, так что способ, которым я получаю каждую координату, невозможен.
".find_enclosed (x1, y1, x2, y2) Returns a list of the object IDs of all objects that occur completely within the rectangle whose top left corner is (x1, y1) and bottom right corner is (x2, y2).
.find_overlapping (x1, y1, x2, y2) Like the previous method, but returns a list of the object IDs of all the objects that share at least one point with the given rectangle."
любых идей о том, как это исправить? пожалуйста, дайте мне знать, если вам нужна дополнительная информация. версия tkinter i имеет значение 8.5, у меня нет простоя 3.1.1 и python 3.1.1. Я знаю, что ссылка на pdf, предоставленная мной для 8.4, но я не могу себе представить, что в этих функциях произошли изменения.
спасибо!
Я не знаю, если вы заметили, но мой ответ теперь содержит решение этого вопроса. Я бы сказал, что этот вопрос исчерпан. – SilentGhost
Я заметил. Я пытаюсь заставить его работать. как вы ясно поняли, я новичок. –