キャンバスウィジェットの周りの薄い灰色の境界線を削除するにはどうすればよいですか? 質問する

キャンバスウィジェットの周りの薄い灰色の境界線を削除するにはどうすればよいですか? 質問する

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およびhighlightthickness0のためにborder width

おすすめ記事