Почему tkinter canvas xview_moveto () не работает должным образом? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь сделать движение холста автоматическим, т.е. перемещать график вместе с диаграммами, нарисованными на холсте, для этого я использую функцию xview_moveto (), но по какой-то причине он перемещает холст только 1 раз, второй представление времени возвращается к исходному виду, не знаю почему, может кто-нибудь помочь понять?

вот часть моего кода:

enter code here

x_cord = 0
y_cord = 0
x0_cord = 50
y0_cord = 850
x2_cord = 1800
trig_1 = 0
def send_com(com1):
    ......
    ........
    .........
    if var1.find('A54_')>=1:
        first = var1.find('A54_')
        a_val = var1[first+4: first+8]
        alanog_val = int(a_val)*100/1023     
        barA0['value'] = alanog_val

        b_val = int(a_val)/1.204
        global x0_cord
        global y0_cord
        global x2_cord
        x_cord = x0_cord + 100
        y_cord = 850 - b_val
        canv.create_line(x0_cord, y0_cord, x_cord, y_cord,  width=2, 
smooth = "true", activefill = "blue", fill="red")
        #canv.create_text(x_cord, y_cord, text="A0",  anchor=tk.SE, 
font='bold', activefill = "blue", fill="red")
        #print(x0_cord, y0_cord, x_cord, y_cord)
        x0_cord = x_cord
        y0_cord = y_cord
        if x_cord > x2_cord:
            canv.config(scrollregion=( x2_cord , 0,1800,0))
            canv.create_line(50,850,x2_cord+1800,850,width=2,arrow=LAST)
            canv.after(500, canv.xview_moveto,x2_cord)
            x2_cord = x2_cord + 1800

1 Ответ

0 голосов
/ 15 апреля 2019

Метод xview_moveto принимает дробь от нуля до единицыВсе, что больше единицы, будет рассматриваться как единое целое.Из канонической документации по tcl / tk:

Настраивает вид в окне таким образом, чтобы часть общей ширины холста находилась за кадром слева.Дробь должна быть дробью от 0 до 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...