2016-10-06 4 views
0

Tkinterにポイントを描画したいのですが、今はCanvasを使用していますが、Canvasクラスにポイントを描画する方法は見つかりませんでした。 Canvascrete_line(x1,y1,x2,y2)というメソッドを提供していますので、x1=x2,y1=y2にポイントを描画しようとしましたが、機能しません。キャンバスでTkinterにポイントを描画するにはどうすればいいですか?

誰も私にそれを作る方法を教えてもらえます。もしそれを使うことができればもっと良いでしょう。他の解決法も受け入れられます。ありがとう!

答えて

0

Canvasに直接点を付ける方法はありません。以下の方法は、​​メソッドを使用している点を示しています。

これを試してみてください:

from Tkinter import * 

canvas_width = 500 
canvas_height = 150 


def paint(event): 
    python_green = "#476042" 
    x1, y1 = (event.x - 1), (event.y - 1) 
    x2, y2 = (event.x + 1), (event.y + 1) 
    w.create_oval(x1, y1, x2, y2, fill=python_green) 



master = Tk() 
master.title("Points") 
w = Canvas(master, 
      width=canvas_width, 
      height=canvas_height) 
w.pack(expand=YES, fill=BOTH) 
w.bind("<B1-Motion>", paint) 

message = Label(master, text="Press and Drag the mouse to draw") 
message.pack(side=BOTTOM) 

mainloop() 
+0

おかげで、私はなぜ 'create_line'を思ったんだけど:!0に楕円形の境界線の幅を縮小 -

は、私は別の解決策を見つけましたcan notと 'create_oval'はできます。 – starkshang

+0

create_lineはこれを行うことができますが、ラインにいくつかの次元を与える必要があります。 x1 == x2、y1 == y2の場合、ピクセルラインはゼロになります。したがって、x2 = x1 + 1とy2 = y1 + 1を設定し、単一の点を求めます。 – patthoyts

1

ソリューションの上方に設けられたが、私は行の数ピクセルの順序を置くしようとしていたときに私のために動作するようには思えません。私は考えていない直接としても、それがうまく機能

canvas.create_oval(x, y, x, y, width = 0, fill = 'white')
関連する問題