我一直在使用 Tkinter Canvas
小部件,以查看是否可以制作一些美观的小部件,我有几个问题。
首先,为什么我的 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()
最佳答案
Section 6.8 Why doesn't the canvas seem to start at 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"
属性并没有什么不同,但我根据常见问题将它保留了下来。在
w.config()
初始化语句之后立即运行Canvas
显示默认为 2 为highlightthickness
和 0 的border width
。关于python - 如何移除 Canvas 小部件周围的浅灰色边框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4310489/