title用法 - python堆疊圖
如何刪除Canvas小部件周圍的淺灰色邊框? (2)
6.8節為什麼畫布似乎不是從0,0開始? Tk Usage FAQ描述了這種現象。
我已經能夠通過略微改變發布的源來消除邊界人工製品......
改變這個:
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
,默認值為2 ,對於border width
,默認值為0 。
我一直在搞亂Tkinter Canvas
小部件,看看我是否可以製作一些美觀的小部件,我有幾個問題。
首先,為什麼我的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()
簡短的回答是,Canvas有兩個影響邊緣的組件:邊框( borderwidth
屬性)和高亮環( highlightthickness
屬性)。
如果邊框寬度為零且高光粗細為零,則畫布坐標將從0,0開始。 否則,畫布的這兩個組件會侵犯坐標空間。
我經常做的是將這些屬性設置為零 。 然後,如果我真的想要一個邊框,我會把那個畫布放在一個框架內,並給框架一個邊框。