python tkinter模塊的簡單使用
由于一些小原因,被迫開始了tkinter一次實戰(zhàn)演練。在此做一些記錄,總結(jié)以及給自己留一些輪子哈哈哈哈哈哈tkinter 是 Python 的一個GUI庫,本次實戰(zhàn)完全使用tkinter,不牽扯任何其他第三方庫的使用。
1.任務(wù)要求畫一個具有上傳病患信息以及圖片功能的用戶界面
2.簡單設(shè)計由于時間緊迫且只要求可視化,背后沒有必要太過精細(xì),所以簡單設(shè)計思路是,利用下拉列表實現(xiàn)病患信息的填寫,用text顯示選擇圖片的路徑。表面上的組件包括:兩個Button:選擇目錄 SELECT THE DIRECTORY 和 選定(也就是上傳按鈕)DETECT 六個Combobox、七個Label,一個scrolledtext和一個canvas。
tips:由于要求并沒有提及向哪里上傳,如何上傳并且要求較為美觀的可視化以及時間關(guān)系,其實上傳按鈕就是一個出現(xiàn)消息彈窗的按鈕,沒有真正的上傳功能。
實現(xiàn)效果:
1)canvas創(chuàng)建畫布的主要目的是將從word中保存的藝術(shù)字添加到主界面當(dāng)中。
canvas = tk.Canvas(window, height=200, width=1000)#創(chuàng)建畫布image_file = tk.PhotoImage(file=’1.gif’)#加載圖片文件image = canvas.create_image(500,100, anchor=’center’, image=image_file)#將圖片置于畫布上canvas.pack(side=’top’)#放置畫布(為上端)
tips:由于tkinter本身僅支持 gif和ppm格式圖片文件,所以我手動改了圖片的后綴為gif(狗頭)
2)combobox
#病人姓名label=tk.Label(window, text=’Patient’s Name:’,height=2,font=('微軟雅黑', 16)) #創(chuàng)建label顯示 信息為patient‘s namelabel.place(x=90, y=150)#label 位置cb_1=ttk.Combobox(window)#創(chuàng)建下拉框cb_1['value']=('張三','克里斯','亞伯拉罕')#添加默認(rèn)信息cb_1.place(x=270, y=170)#下拉框位置#病人神份證號label=tk.Label(window, text=’Patient’s ID : ’,height=2,font=('微軟雅黑', 16))#如上label.place(x=90, y=200)cb_2=ttk.Combobox(window)cb_2['value']=('215469789725315978','123415489674534112','56487561357456123')cb_2.place(x=270, y=220)#病人電話label=tk.Label(window, text=’Patient’s TEL : ’,height=2,font=('微軟雅黑', 16))label.place(x=90, y=250)cb_3=ttk.Combobox(window)cb_3['value']=('13810101010','13921212121','19578956432')cb_3.place(x=270, y=270)#陪護(hù)人姓名label=tk.Label(window, text=’Relatives Name:’,height=2,font=('微軟雅黑', 16))label.place(x=520, y=150)cb_4=ttk.Combobox(window)cb_4['value']=('張三','克里斯','亞伯拉罕')cb_4.place(x=700, y=170)#陪護(hù)人電話label=tk.Label(window, text=’Relatives TEL :’,height=2,font=('微軟雅黑', 16))label.place(x=520, y=200)cb_5=ttk.Combobox(window)cb_5['value']=('13810101010','13921212121','19578956432')cb_5.place(x=700, y=220)#陪護(hù)人郵件label=tk.Label(window, text=’Relatives Email:’,height=2,font=('微軟雅黑', 16))label.place(x=520, y=250)cb_6=ttk.Combobox(window)cb_6['value']=('13810101010','13921212121','19578956432')cb_6.place(x=700, y=270)
3)label&scrolledText
var_name = tk.StringVar()#定義變量 用來存放圖片路徑label=tk.Label(window, text=’Picture Path:’,height=2,font=('微軟雅黑', 16))#label 顯示信息Picture Path:label.place(x=90, y=315)#設(shè)置label位置text = tk.scrolledtext.ScrolledText(window,width=53,height=1,font=('微軟雅黑', 16),fg=’#22C9C9’)#創(chuàng)建下拉框text.place(x=230, y=320)#設(shè)置下拉框位置
4)button
# dir_load and detect button#創(chuàng)建選擇文件按鈕btn_login = tk.Button(window, text=’select the directory’, command=load_dir,width=15,height=1,font=('微軟雅黑', 16),bg=’#22C9C9’,fg=’white’)#定義一個`button`按鈕,名為`Login`,觸發(fā)命令為`usr_login`btn_login.place(x=250, y=420)#創(chuàng)建上傳按鈕btn_sign_up = tk.Button(window, text=’detect’, command=detect_w,width=15,height=1,font=('微軟雅黑', 16),bg=’#FF4081’,fg=’white’)btn_sign_up.place(x=525, y=420)
5)def
def load_dir():#選擇目錄函數(shù) var_name=tkinter.filedialog.askopenfilename()# 選擇目錄,返回目錄名 var_name+=’n’ text.insert(’end’,var_name) print(var_name)def detect_w():#上傳彈窗函數(shù) print(tk.messagebox.showinfo(title=’message’, message=’Upload Succeeded !’))
tips:由于Python執(zhí)行順序自上而下,所以觸發(fā)函數(shù)要放在 button的上面。
6)tkinter框架
import tkinter as tkimport tkinter.messagebox,tkinter.filedialog,tkinter.fontfrom tkinter.scrolledtext import ScrolledTextfrom tkinter import ttk#創(chuàng)建基本窗口window=tk.Tk()#創(chuàng)建窗口window.geometry(’1000x600+200+200’)#修改窗口大小及初始位置window.title(’Picture Process’)#窗口標(biāo)題window.mainloop()#主界面顯示循環(huán)函數(shù)4.總結(jié)
時間比較緊迫,簡單的做了可視化的優(yōu)化就交付了這個界面。交付之后出現(xiàn)了一些問題。在macos中button背景顏色不顯示,通過將button屬性bg修改為highlightbackground簡單解決了不顯示的問題,但是點擊button之后,button的背景顏色變?yōu)榘咨皇O逻吙虻念伾€存在。通過查找官方文檔,好像是tkinter本身的缺陷。建議使用ttk,或者引入新的庫 tkmacos來解決這個問題。(未能付諸實現(xiàn),純猜測)
以上就是python tkinter模塊的簡單使用的詳細(xì)內(nèi)容,更多關(guān)于python tkinter模塊的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. ASP基礎(chǔ)入門第四篇(腳本變量、函數(shù)、過程和條件語句)2. php使用正則驗證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)3. jscript與vbscript 操作XML元素屬性的代碼4. Jsp servlet驗證碼工具類分享5. XML在語音合成中的應(yīng)用6. 基于PHP做個圖片防盜鏈7. ASP將數(shù)字轉(zhuǎn)中文數(shù)字(大寫金額)的函數(shù)8. 基于javaweb+jsp實現(xiàn)企業(yè)車輛管理系統(tǒng)9. Jsp+Servlet實現(xiàn)文件上傳下載 文件列表展示(二)10. HTML5實戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)
