python软件怎么打开画图_Python实现画图软件功能
概述
雖然Python的強項在人工智能,數據處理方面,但是對于日常簡單的應用,Python也提供了非常友好的支持(如:Tkinter),本文主要一個簡單的畫圖小軟件,簡述Python在GUI(圖形用戶界面)方面的應用,僅供學習分享使用,如有不足之處,還請指正。
設計思路
頁面布局:主要分為上下兩部分 a. 繪圖區域,本例以Canvas實現 b. 下部:功能區,由按鈕實現
事件監聽:通過給功能按鈕綁定事件,來實現不同的功能,如:繪線,繪矩形等功能。
繪圖區域:監聽鼠標左鍵的按下(開始繪圖)和抬起(停止繪圖),再根據不同的按鈕實現繪制不同的圖形。
涉及知識點
開發工具:Python3.7 , PyCharm2019
Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 可以快速的創建 GUI 應用程序。
Canvas控件提供了一個自定義的繪圖區域,可以通過不同的函數來繪制不同的圖形。
繪制直線 create_line(self.x,self.y,event.x,event.y,fill=self.fgcolor)
繪制帶箭頭的直線 create_line(self.x,arrow=LAST,fill=self.fgcolor)
繪制矩形 create_rectangle(self.x,outline=self.fgcolor)
繪制曲線,是通過繪制不同的點來實現的
清除圖形 drawpad.delete('all')
Button 按鈕控件,通過綁定(bind)不同的監聽事件來實現不同的功能。
name屬性設置按鈕的名稱,
text屬性設置按鈕的顯示文本。
bind 綁定事件
示例效果圖
本例主要實現繪制直線,帶箭頭的直線,曲線,矩形,清除等功能,如下所示:
核心代碼
在本例中,主要功能如下:
創建畫板
1 """創建畫圖區域"""
2 self.drawpad = Canvas(self,width=win_width,height=win_height,bg=bgcolor)3 self.drawpad.pack()
View Code
創建按鈕
1 #創建按鈕
2 self.btn_start = Button(self,name='start',text=開始')3 self.btn_start.pack(side=left4 self.btn_pen = Button(self,1)">pen畫筆5 self.btn_pen.pack(side=6 self.btn_rect = Button(self,1)">rect矩形7 self.btn_rect.pack(side=8 self.btn_clear = Button(self,1)">clear清屏9 self.btn_clear.pack(side=10 self.btn_erasor = Button(self,1)">erasor橡皮擦11 self.btn_erasor.pack(side=12 self.btn_line = Button(self,1)">line直線13 self.btn_line.pack(side=14 self.btn_line_arrow = Button(self,1)">line_arrow箭頭直線15 self.btn_line_arrow.pack(side=16 self.btn_color = Button(self,1)">color顏色17 self.btn_color.pack(side=View Code
綁定事件
1 綁定事件
2 self.btn_line.bind(點擊按鈕事件
3 self.btn_line_arrow.bind(4 self.btn_rect.bind(5 self.btn_pen.bind(6 self.btn_erasor.bind(7 self.btn_clear.bind(8 self.btn_color.bind(點擊按鈕事件
View Code
功能實現
1 defeventManager(self,event):2 name =event.widget.winfo_name()3 print(name)4 self.start_flag =True5 if name == :6 左鍵拖動
7 self.drawpad.bind(,self.myline)8 elif name == 9 self.drawpad.bind(10 11 self.drawpad.bind(12 13 self.drawpad.bind(14 15 self.drawpad.bind(16 17 self.drawpad.delete(all18 19 c = askcolor(color=self.fgcolor,title=請選擇顏色20 print(c) c的值 ((128.5,255.99609375,0.0),'#80ff00')
21 self.fgcolor = c[1]22
23 startDraw(self,1)">24 self.drawpad.delete(self.lastdraw)25 ifself.start_flag:26 self.start_flag =False27 self.x =event.x28 self.y =event.y29
30 stopDraw(self,1)">31 self.start_flag =32 self.lastdraw =033
34 myline(self,1)">35 self.startDraw(event)36 self.lastdraw = self.drawpad.create_line(self.x,fill=self.fgcolor)37
38 myline_arrow(self,1)">39 40 self.lastdraw = self.drawpad.create_line(self.x,1)">41
42 myrect(self,1)">43 44 self.lastdraw = self.drawpad.create_rectangle(self.x,outline=45
46 mypen(self,1)">47 48 print(self.x=49 self.drawpad.create_line(self.x,1)">50 self.x =51 self.y =52
53 myerasor(self,1)">54 55 56 self.drawpad.create_rectangle(event.x - 3,event.y - 3,event.x + 3,event.y + 3,1)">57 self.x =58 self.y = event.y
View Code
快捷鍵的實現
1 self.master.bind(綁定快捷鍵
2 self.master.bind(3 self.master.bind(4 self.master.bind(5 self.drawpad.bind(左鍵釋放按鈕
View Code
快捷鍵功能實現
1 hotKey(self,1)"> 2 c =event.charif c == r4 self.fgcolor = red'
elif c == g6 self.fgcolor = green7 b8 self.fgcolor = blue9 y10 self.fgcolor = yellow'
View Code
有需要的朋友,可點擊鏈接下載整體代碼,如下所示:
備注
不積跬步,無以至千里;不積小流,無以成江海;鍥而舍之,朽木不折,鍥而不舍,金石可鏤。
總結
以上是編程之家為你收集整理的Python實現畫圖軟件功能全部內容,希望文章能夠幫你解決Python實現畫圖軟件功能所遇到的程序開發問題。
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。
如您喜歡交流學習經驗,點擊鏈接加入編程之家官方QQ群:1065694478
總結
以上是生活随笔為你收集整理的python软件怎么打开画图_Python实现画图软件功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pem私钥pkcs1和pkcs8之间互转
- 下一篇: node2vec python_图上的机