2013-12-12 55 views
1

如何使用Python完成以下HTML5畫布描邊?我會用Tkinter嗎? Qt的? wxWidgets的?其他一些圖書館?Python等效的HTML5畫布

<!DOCTYPE html> 
<html> 
<body> 

<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"> 
</canvas> 

<script> 

var c = document.getElementById("myCanvas"); 
var ctx = c.getContext("2d"); 
ctx.beginPath(); 
ctx.moveTo(20,20); 
ctx.lineTo(20,100); 
ctx.lineTo(70,100); 
ctx.strokeStyle="red"; 
ctx.stroke(); 

</script> 

</body> 
</html> 

回答

2

隨着tkinter的使用可以使用Canvas控件類型。您不能直接更改邊框的顏色;我不確定這是否是問題的一部分。您可以輕鬆繪製彩色邊框,或將其放在彩色邊框內以使其具有邊框。

要創建該行,請使用create_line方法。

下面是一個例子:

import Tkinter as tk 

class Example(tk.Frame): 
    def __init__(self, root): 
     tk.Frame.__init__(self, root) 
     self.canvas = tk.Canvas(width=300, height=150,borderwidth=1) 
     self.canvas.pack(side="top", fill="both", expand=True) 
     points = (20,20,20,100,70,100) 
     self.canvas.create_line(points, fill="red") 

if __name__ == "__main__": 
    root = tk.Tk() 
    Example(root).pack(fill="both", expand=True) 
    root.mainloop() 
+0

謝謝!不,邊框顏色無關緊要,但這是有用的信息。 –

+0

這是一個完全獨立的問題,但畫布可以保存爲SVG嗎? –

+1

@MarkRichman:沒有內置的svg支持,但畫布上的對象是對象而不是pixmaps,並且畫布具有良好的內省功能。將畫布的內容轉換爲SVG應該非常直接。我已經看到它在Tcl中完成(例如:http://wiki.tcl.tk/4534),但我沒有看到它在Python中完成。 –