2017-04-05 118 views
0

許多線條和點可能,我希望能夠跟蹤當我線/點已被挖空。是否有任何簡短的編碼方式,或者我有一半是想出數百/數千個不同的元素名稱。創建tkinter畫布線/點的列表

我已經試過

self.z[0].canvas.create_line() 
self.z[1].canvas.create_line() 

以及

self.z(0).canvas.create_line() 
self.z(1).canvas.create_line() 

只拿回一個錯誤,說像Z不能是整數,又名你不能這樣做愚蠢的:)

是否有無論如何建立一個很好的循環和創建線/點,然後能夠測試一旦他們創建測試。我可以按照我希望能夠測試它們的方式測試點,但我只是想創建線條/點的更簡單的方法。

最壞的情況是沒有設立類似

self.z1.canvas 
self.z2.canvas 
self.z3.canvas 

,但有1,2,3各能的方式,通過一個for循環可以提高嗎?我不知道我是否曾經見過像我建議提及或不提的東西。

+0

你的問題對我來說不是很清楚......所以你想在一個畫布上創建多行?還是有多個畫布?你爲什麼試圖從'z'列表的元素中獲取'canvas'屬性? – TrakJohnson

+0

一個畫布上有許多線條/點,我希望能夠在線條/點上滾動鼠標時在線條/點上顯示一個信息表。我可以檢測到該行滾動並使用它,但我試圖找出命名行/點的情況下一個簡單的方法。我希望能夠像使用line1,line2,line3一樣簡單,或者像我之前嘗試使用line [1],line [2],line [3]那樣使用for循環設置線條簡單。所有的行數據都在一個csv文件中,這使得它很容易,但創建命名行似乎更困難。 – confused

回答

1

每次您在畫布上創建項目時,它都會返回一個唯一的ID。您可以將該ID存儲在列表中。

self.lines = [] 
for x in range(1000): 
    item = self.canvas.create_line(...) 
    self.lines.append(item) 

話雖這麼說,你不需要保留任何這些陣列中的「跟蹤,當我行/點已被鼠標滑過。」您可以爲此設置綁定。

+0

好的。我甚至沒有想過試圖追加唯一的ID。仍然太多學習/瞭解:)至少看起來我現在可能真的很快捷。 – confused