import tkinter
class mybutton:
def __init__(self,root,canvas,label,type):
self.root = root
self.canvas = canvas
self.label = label
if type ==0:
button=tkinter.button(root,text='drawline',command=self.drawline)
if type ==1:
button=tkinter.button(root,text='drawarc',command=self.draware)
if type ==2:
button=tkinter.button(root,text='drawrec',command=self.drawrec)
if type == 3:
button=tkinter.button(root,text='drawoval',command=self.drawoval)
button.pack(side='left')
def drawline(self):
self.label.text.set('drawline')
self.canvas.setstatus(0)
def draware(self):
self.label.text.set('draware')
self.canvas.setstatus(1)
def drawrec(self):
self.label.text.set('drawrec')
self.canvas.setstatus(2)
def drawoval(self):
self.label.text.set('drawoval')
self.canvas.setstatus(3)
class mycanvas:
def __init__(self,root):
self.status=0
self.draw=0
self.root=root
self.canvas=tkinter.canvas(root,bg='white',width=600,height=480)
self.canvas.bind('',self.draw)
self.canvas.bind('',self.exit)
self.canvas.bind('',self.del)
self.canvas.bind('',self.del)
def draw(self,event):
if self.draw==0:
self.x=event.x
self.y=event.y
self.draw=1
else:
if self.status==0:
self.canvas.create_line(self.x,self.y,event.x,event.y,bg='black')
self,draw=0
elif self.status==1:
self.canvas.create_arc(self.x,self.y,event.x,event.y)
self.draw=0
elif self.status==2:
self.canvas.create_retangle(self.x,self.y,event.x,event.y)
self,draw=0
elif self.status==3:
self.canvas.create_oval(self.x,self.y,event.x,event.y)
self.drwa=0
def del(self,event):
items = self.canvas.find_all()
for item in items:
self.canvas.delete(item)
def exit(self,event):
self.root.quit()
def setstatus(self,status):
self.status=status
class mylabel:
def __init__(self,root):
self.root=root
self.canvas = canvas
self.text=tkinter.stringvar()
self.text.set('drawline')
self.label=tkinter.label(root,textvariable=self.text,fg='red',width=50)
self.label.pack(side='left')
root = tkinter.tk()
canvas=mycanvas(root)
label=mylabel(root)
mybutton(root,canvas,label,0)
mybutton(root,canvas,label,1)
mybutton(root,canvas,label,2)
mybutton(root,canvas,label,3)
root.mainloop()
滴~ 今日打卡!繼續昨天的tkinter gui程式設計學習
1. 繪製圖形
引數:background 背景色
borderwidth 邊框寬度
bitmap 位圖
foreground 前景色
height 高度
width 款年度
image
方法:create_arc 繪製圓弧
create_bitmap 繪製位圖,支援
xbm
create_image 繪製,支援
gif
create_line 繪製直線
create_oval 繪製橢圓
create_polygon 繪製多邊形
create_rectangle 繪製舉行
create_text 繪製文字
create_window 繪製視窗
delete 刪除繪製的圖形
2. 事件處理:
引數:sequence 繫結的事件
func 繫結的事件處理函式
add 可選引數,為空字元或+
classname 繫結的類
其中,sequence繫結的事件,必須以
<>
包圍,滑鼠事件表示方式(滑鼠事件中凡數字可替換成
2(表示滑鼠中鍵)或
3(表示滑鼠右鍵)):
左鍵按下
左鍵按下
左鍵釋放
按住左鍵拖動
雙擊左鍵
滑鼠指正離開某一元件區域
滾輪動作
鍵盤事件: 按下
a鍵 按下
alt+a 按下
control+ 按下
shift+a
快速按兩下a
caps lock開啟後按下a鍵
注意:輸入的字母區分大小寫,如
則要按下大寫
a才觸發事件
視窗事件:
activate 當元件有不可用轉為可用時觸發
configure 當元件大小改變時觸發
deactivate 當元件有可用轉為不可用時觸發
destrooy 當元件被銷毀時觸發
expose 當元件從被遮擋狀態中暴露出來時觸發
focusin 當元件獲得焦點時觸發
focusout 當元件失去焦點時觸發
map 當元件有隱藏狀態變為現實狀態時觸發
unmap 當元件有顯示狀態變為隱藏狀態時觸發
property 當窗體的屬性被刪除或改變時觸發
visibility 當元件變為可視狀態時觸發
3. 對話方塊:
default 指定訊息框的按鈕
icon 指定訊息框的圖示
message 指定訊息框所顯示的訊息
parent 指定訊息框的父元件
title 指定訊息框的標題
type 指定訊息框的型別
4. 標準對話方塊
使用******dialog模組、
filedialog
模組、colorchooser
模組可分別建立標準輸入對話方塊、檔案開啟和儲存檔案對話方塊及顏色選擇對話方塊
其中,******dialog模組可建立輸入字串、輸入整數和輸入浮點型三種對話方塊,分別使用
askstring
、askinteger
和askfloat
函式,有以下幾個相同的可選引數:
title 指定對話方塊標題
prompt 指定對話方塊中顯示的文字
initialvalue 指定輸入框的初始值
filedialog模組建立的標準檔案對話方塊有以下幾個可選引數:
filetypes 指定檔案型別
initialdir 指定預設目錄
initialfile 指定預設檔案
title 指定對話方塊標題
顏色選擇對話方塊有以下幾個可選引數:
initialcolor 指定初始化顏色
title 指定對話方塊標題
最後,還是貼個今天碼的**
python用tkinter GUI 應用小記
label 和entry 控制項及python i o。建立乙個gui 應用,其中包括乙個讓使用者提供文字檔案名的entry 文字框。開啟並讀取檔案內容,並將其顯示在label 標籤中。window.title 課後練習5 6 window.geometry 200x300 content tk.s...
tkinter gui介面使用方法
tkinter 編譯互動的具有視窗的python python 提供了多個圖形開發介面的庫,幾個常用 python gui 庫如下 tkinter 是 python 的標準 gui 庫。python 使用 tkinter 可以快速的建立 gui 應用程式。由於 tkinter 是內建到 python...
程式設計筆記(2)
21.說明乙個指標 uint8 t p p ddrb 編譯提示 警告 assignment discards qualifiers from pointer target type 這是什麼型別的警告。ddrb是乙個指向常量的指標 22.strcmp t恤衫 t恤 返回結果不為零。strncmp t...