본문 바로가기
파이썬

파이썬 캔버스 위젯 주변의 밝은 회색 테두리를 제거하려면 어떻게합니까?

by º기록 2020. 10. 22.
반응형

미적으로 만족스러운 위젯을 만들 수 있는지 확인하기 위해 Tkinter Canvas 위젯을 엉망으로 만들고 있는데 몇 가지 질문이 있습니다.

첫째, 캔버스 위젯 주변에 연한 회색 테두리 가있는 이유는 무엇이며 어떻게 제거합니까?

둘째, 캔버스 (2,2)에서 맨 위 왼쪽이 가장 왼쪽에있는 이유는 무엇입니까? (0,0)이어야 할 것 같습니다.

내 현재 스크립트 :

from Tkinter import *

master = Tk()
master.configure(bg='black')
master.wm_attributes("-topmost", 1)

w = Canvas(master, width=150, height=40, bd=0,relief='ridge',)
w.pack()

color = 100
x0 = 2
y0 = 2
x1 = 151
y1 = 2

while y0 < 20 :
    r = color
    g = color
    b = color
    rgb = r, g, b
    Hex = '#%02x%02x%02x' % rgb
    w.create_line(x0, y0, x1, y1,fill=str(Hex), width=1)
    color = color - 2
    y0 = y0 + 1
    y1 = y1 + 1

color = 10

while y0 < 40 :
    r = color
    g = color
    b = color
    rgb = r, g, b
    Hex = '#%02x%02x%02x' % rgb
    w.create_line(x0, y0, x1, y1,fill=str(Hex), width=1)
    color = color + 4
    y0 = y0 + 1
    y1 = y1 + 1

mainloop()

 

해결 방법

 


게시 된 소스를 약간 변경하여 국경 인공물을 제거 할 수있었습니다 ...

이것을 변경하십시오 :

w = Canvas(master, width=150, height=40, bd=0, relief='ridge')
w.pack()

에:

w = Canvas(master, width=150, height=40, bd=0, highlightthickness=0, relief='ridge')
w.pack()

이:

x0 = 2
y0 = 2
x1 = 151
y1 = 2

에:

x0 = 0
y0 = 0
x1 = 150
y1 = 0

흥미롭게도 "borderwidth" 속성은 차이를 만들지 못했지만 FAQ 에 따라 그대로 두었습니다.

Canvas 초기화 문 직후 w.config () 를 실행하면 highlightthickness 및 < 테두리 너비 의 경우 strong> 0 .

 

참조 페이지 https://stackoverflow.com/questions/4310489

 

 

반응형

댓글