Найти - Пользователи
Полная версия: Не прорисовывается линия на Canvas (tkinter)
Начало » GUI » Не прорисовывается линия на Canvas (tkinter)
1
RickPy
 from tkinter import *
root=Tk()
frame=Frame(borderwidth=10)
frame.pack()
can=Canvas(frame,bg='white')
can.pack(expand=True,fill=BOTH,anchor=NW)
#рисуем три вертикальные линии, по всей высоте can,с координатами 0,15,30
#линия с x=0  не отрисовываются
[can.create_line(x,0,x,int(can.cget('height'))) for x in range(0,31,15)]
#с вертикальными линиями такая же проблема (с y=0 линии нет)
[can.create_line(0,y,int(can.cget('width')),y) for y in range(0,31,15)]
mainloop()

Не отображается линия. Подскажите плз, что не так.
4kpt_IV
Что по-вашему делает эта часть кода? И как высчитываются размеры для создаваемых объектов?

 int(can.cget('height')
RickPy
 int(can.cget('height'))
Эта часть кода возвращает высоту Canvas. В методе canv.create_line() указаны координаты начала и конца линии. Проблема в том, при рисовании в точках с x=0 или 1, пиксели не отображаются, при x=3 все отлично.
4kpt_IV
Дайте полный код. Ну или ту часть где полностью создается канвас и упаковывается.
RickPy
Нашел решение. highlightthickness - опция при конструировании, по умолчанию равна 2. Если выставить в 0, все начинает работать, как требуется.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB