Canvas
見た目に美しいウィジェットを作成できるかどうかを確認するために、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()
ベストアンサー1
セクション 6.8 キャンバスが 0,0 から始まらないように見えるのはなぜですか?のTk の使用に関する 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
。