2017-10-04 6 views
0

私は現在、PythonのTkinterモジュールとクラスを使いこなしています。キャンバスでcreate_ovalを使用しているときに問題が発生しました。ここで、fill = [color]はサークル内の小さな点を塗りつぶすだけです。私のコードは以下の通りです。オーバルが完全に埋め込まれていません

import Tkinter as tk 

class MainApplication(tk.Frame): 
    def __init__(self, parent): 
     tk.Frame.__init__(self, parent) 
     self.parent = parent 
     self.canvas(parent) 
     self.draw_oval() 


def canvas(self, parent): 
    self.canvas = tk.Canvas(parent, width=960, height=600) 
    self.canvas.pack() 

def draw_oval(self): 
    self.canvas.create_oval(300, 300, 300, 300, width=200, fill='green') 

if __name__ == '__main__': 
    root = tk.Tk() 
    MainApplication(root).pack() 
    root.mainloop() 

問題が何であるかわかりません。すべての批判は大歓迎です、ありがとう!

答えて

1

幅がゼロピクセル、高さがゼロピクセルの楕円を作成しています(左上隅は300,300、右下は300,300)。あなたが何かを見ているという事実は、本当に太い線を使って端を描くことを余儀なくされているということです。

あなたが200ピクセル幅/長い楕円形をしたい場合は、座標ではなく、幅のことを制御します。私が見る

def draw_oval(self): 
    self.canvas.create_oval(300, 300, 500, 500, width=1, fill='green') 
+0

ああ、!ありがとうございました! –

関連する問題