去我第一次的問題,即時通訊做從數據基本logplayer在一個txt文件:Tkinter的create_line問題:錯誤#座標:預計這裏偶數
的代碼是一樣的東西:
for aircraft in self.logArray.itervalues():
for logLine in aircraft:
currentPoint = self.point(logLine[1], logLine[2])
currentPoint = self.win2canvas(currentPoint)
points = np.append(points, currentPoint)
print points
print np.size(points)
self.canvas.create_line(points)
points = np.array([])
所以logArray是一個字典,每個名稱都包含一個[time,x,y]類型的數組,因此每個飛機名稱都會有一個這樣的數組。
第二個用於簡單地轉換爲tkinter畫布座標並將currentPoint附加到預先存在的(並初始化)。
當它到達create_line方法,我得到:
File "/home/joao/tese/workspace/ATC/src/autoATC/LogPlayer.py", line 131, in drawPath
self.canvas.create_line(points)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2204, in create_line
return self._create('line', args, kw)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 2192, in _create
*(args + self._options(cnf, kw))))
_tkinter.TclError: wrong # coordinates: expected an even number, got 399
我手動檢查點陣列的大小,確實是偶數。所以我使用np.size進行了雙重檢查,返回398!
我也嘗試過使用一個非常類似的測試方法,這樣做的:
self.canvas.create_line([123,345,234,453,23,34,45,56,67,78])
其中又以完美!我不明白爲什麼,但不知何故,我的積分數組最終得到了一個額外的元素,我不知道從哪裏來!
謝謝你的時間和耐心!
儘管它並沒有回答這個問題,我設法解決這個問題: 我第一次嘗試使用第4個點的點陣列,並且仍然沒有工作(它得到了5分)。 我忘了什麼考慮(也提到)是我與numpy的陣列工作,所以當我投我的觀點numpy的陣列到Python的列表,像這樣: self.canvas.create_line(名單(分)) 問題解決了! –