使用Tkinter制作简单的图形

时间:2016-02-17 19:59:22

标签: python tkinter

我正在尝试使用python中的tkinter在简单图表中的列表中表示值。索引为X,值为Y.我试过这个方法:

from Tkinter import *

root = Tk()
ls = [1,5,3,4,7,8,3,2,5]
cv = Canvas(root)
for ind,val in enumerate(ls):
    cv.create_line(ind*20,\
                   val*20,\
                   (ind+1)*20,\
                   ls[ind+1]*20)
cv.pack()
root.mainloop()

正如您所看到的,我正在使用当前项目中的索引和值作为初始XY,并且与列表中的下一项目相同。当循环到达最后一项并尝试获取ls [ind + 1]

时,这会引发明显的IndexError

考虑到这个错误,我试图修改循环以忽略最后一项。得到了这个:

from Tkinter import *

root = Tk()
ls = [1,5,3,4,7,8,3,2,5]
cv = Canvas(root)
for ind,val in enumerate(ls):
    if ls[ind] is ls[-1]:
        pass
    else:
        cv.create_line(ind*20,\
                       val*20,\
                       (ind+1)*20,\
                       ls[ind+1]*20)
cv.pack()
root.mainloop()

它有效...或者至少,它不会破坏程序。但是如果任何项目与最后一个项目具有相同的值,则循环忽略该循环。我被困在这里。我认为这是更简单的方法,但我无法弄清楚如何忽略最后一项。

有条件的信息:这是一个较大程序的孤立问题。列表不是硬编码的,因此使用最后一项的索引不是一种选择。

0 个答案:

没有答案