Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Не прорисовывается линия на Canvas (tkinter) [RSS Feed]

#1 Ноя. 8, 2016 15:45:26

RickPy
Зарегистрирован: 2016-11-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не прорисовывается линия на Canvas (tkinter)

 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()

Не отображается линия. Подскажите плз, что не так.

Отредактировано RickPy (Ноя. 8, 2016 19:46:55)

Офлайн

#2 Ноя. 8, 2016 18:18:54

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Не прорисовывается линия на Canvas (tkinter)

Что по-вашему делает эта часть кода? И как высчитываются размеры для создаваемых объектов?

 int(can.cget('height')

Офлайн

#3 Ноя. 8, 2016 18:43:49

RickPy
Зарегистрирован: 2016-11-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не прорисовывается линия на Canvas (tkinter)

 int(can.cget('height'))
Эта часть кода возвращает высоту Canvas. В методе canv.create_line() указаны координаты начала и конца линии. Проблема в том, при рисовании в точках с x=0 или 1, пиксели не отображаются, при x=3 все отлично.

Офлайн

#4 Ноя. 8, 2016 18:49:41

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Не прорисовывается линия на Canvas (tkinter)

Дайте полный код. Ну или ту часть где полностью создается канвас и упаковывается.

Офлайн

#5 Ноя. 8, 2016 20:10:26

RickPy
Зарегистрирован: 2016-11-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не прорисовывается линия на Canvas (tkinter)

Нашел решение. highlightthickness - опция при конструировании, по умолчанию равна 2. Если выставить в 0, все начинает работать, как требуется.

Офлайн

  • Начало
  • » GUI
  • » Не прорисовывается линия на Canvas (tkinter)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version