Python tkinter移动

时间:2014-01-04 16:52:57

标签: python tkinter

我在图表,数据线,水平分隔线,日期和月份指示线等上有很多行。我通常可能直到现在一直以这种方式添加行:

canvas_1.create_line(x1,y1,x2,y2)

我现在有一个简单的问题。我还要添加一个垂直刻度来显示这条线的高低和零度......非常自然。数据文件很大,大约有12,000个数据单元并且还在不断增长,因此我使用左右箭头键设置了所有内容,以便滚动数据。它工作得很好,但我还没有添加垂直比例。现在一切都动了:

canvas_1.move(ALL,x,y)

当我添加垂直刻度时,我不希望垂直刻度移动。我知道通过使用移动(ALL),垂直刻度也会移动。

为了获得垂直刻度,我需要更改什么才能移动?我是否必须出去并'标记'所有create_line语句???

line1 = canvas_1.create_line....

如果是这样,当我想要移动的线条的大型引用时,我如何将它们放入move语句中。我是否必须将所有标签放入列表或什么?我在这个概念的思考过程中真的迷失了。

我觉得我还在调查滚动条,但还没有好运,我觉得我仍然会遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

move方法采用单个对象的id或表示零个或多个对象的标记。 ALL是一个内置标记(字面意思是字符串"all"),它引用画布上的所有内容。

因此,要在不移动比例的情况下使用move方法,请将除缩放之外的所有内容都设为唯一标记,然后将该标记用于move命令。

canvas_1.create_line(x1,y1,x2,y2, tags=("lines",))
...
canvas_1.move("lines")

有关代码的详情,请参阅http://effbot.org/tkinterbook/canvas.htm#item-specifiers