版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Tkinter圖形界面設計GUI可視化01.Python的GUI庫03.常用控件與布局02.Tkinter簡介04.綜合案例主要內(nèi)容1Python的GUI庫Python的GUI庫GUI全稱:GraphicsUserInterface(圖形用戶界面)GUI不僅代表圖形界面,也包含界面操作(三要素)輸入輸出處理Python的GUI庫Tkinter庫:Python的標準GUI庫,可用于多個系統(tǒng)wxPython庫:跨平臺的UI工具集,開源工具包PyQt庫:是Qt庫的Python版本,支持跨平臺Kivy庫:主要用于移動應用程序開發(fā),開源工具包2Tkinter簡介Tkinter簡介Python標準GUI庫圖形界面簡單,無需安裝第三方庫通用性高、即查即用導入tkinter模塊的兩種方式fromtkinterimport*importtkinterastk注意:如果采用第一種,在引用組件時不需要加前綴,第二種方式則必須加上tk.的前綴創(chuàng)建第一個tkinter程序第一步:導入tkinter模塊 importtkinterastk第二步:創(chuàng)建控件實例 app=Tk()第三步:進入事件循環(huán) app.mainloop()第一個GUI程序--gui01#導入tkinter模塊fromtkinterimport*#創(chuàng)建一個窗口對象root=Tk()#啟動主窗口root.mainloop()tkinter默認的窗口大小是200x200,默認標題是tk設置窗口寬度高度--gui02geometry函數(shù):設置Tkinter窗口的尺寸,主窗口在用戶桌面上的顯示位置參數(shù):widthxheight+x+
ywidth:寬度height:高度x:距離桌面左上角(0,0)向右的X軸距離y:距離桌面左上角(0,0)向下的Y軸距離設置窗口寬度高度--gui02
fromtkinterimport*root=Tk()root.geometry("300x200+700+300")root.mainloop()設置窗口標題--gui03title函數(shù):title("標題名稱")fromtkinterimport*root=Tk()root.geometry("300x300+700+300")root.title("窗口標題設置")root.mainloop()窗口其他設置--gui04設置窗口圖標:iconbitmap('圖標位置')圖片下載:/圖標轉(zhuǎn)換:/cn/icon/png-to-ico/設置窗口背景顏色:["background"]="顏色值"顏色值:十六進制顏色值或單詞顏色推薦網(wǎng)站:/commons?type=3設置頂部工具欄樣式:attributes("-toolwindow",True)True只有退出按鈕,也沒有圖標False正常窗口樣式窗口其他設置--gui04fromtkinterimport*root=Tk()root.geometry("400x300")root.title("窗口設置")#設置窗口標題root.iconbitmap("favicon.ico")#設置窗口圖標root["background"]="#C1FFC1"#設置窗口背景顏色值#root["background"]="DarkSeaGreen1"#設置窗口背景顏色單詞root.attributes("-toolwindow",False)#root.attributes("-toolwindow",True)#設置工具欄樣式root.mainloop()3常用控件與布局常用控件控件描述Label標簽控件;可以顯示文本和位圖Button按鈕控件;在程序中顯示按鈕Entry輸入控件;用于顯示簡單的文本內(nèi)容Text文本控件;用于顯示多行文本Radiobutton單選按鈕控件;顯示一個單選的按鈕狀態(tài)Checkbutton多選框控件;用于在程序中提供多項選擇框Listbox列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶常用控件控件描述messagebox用于顯示消息框Scale范圍控件;顯示一個數(shù)值刻度Scrollbar滾動條控件,當內(nèi)容超過可視化區(qū)域時使用,如列表框Frame框架控件;在屏幕上顯示一個矩形區(qū)域,用來作為容器Menu菜單控件;顯示菜單欄,下拉菜單和彈出菜單Canvas畫布控件;顯示圖形元素如線條或文本filedialog文件對話框;Label控件標簽,靜態(tài)文字或圖片,不可修改參數(shù):(/python/python-tk-label.html)master:父框架名稱options:可選項,即該標簽的可設置屬性text:文本,可包含換行符(\n) width:寬度,值為字符數(shù)height:高度,值為字符數(shù)
fg:文字顏色font:設置字體Label標簽--gui05標簽文字標簽寬度、高度標簽文字顏色標簽文字字體標簽背景色label.pack()--布局布局pack()布局:自動布局,采用塊的方式組織子組件grid()布局:網(wǎng)格布局,采用表格結構組件子組件place()布局:絕對定位布局,指定子組件的絕對位置pack布局自動布局,默認方式是從上至下布局,系統(tǒng)會自動安排一個合適的位置參數(shù):expand:布爾值,指定當父容器增大時是否拉伸組件fill:指定填充的方向,X,Y,BOTH和NONE,分別為水平方向填充、豎直方向填充、水平和豎直方向填充、不填充side:指定??糠较?,可以為LEFT,TOP,RIGHT,BOTTOManchor:當可用空間大于組件的需求的大小時,該選項決定組件被放置于容器的何處。N、E、S、W、NW、NE、SW、SE、CENTERpack布局--gui06pack布局side屬性fill屬性expand屬性grid布局依照表格方式放置,非常好用的布局方式grid布局無法與pack布局一起使用參數(shù):row:設置控件在表格第幾行,從0開始計數(shù)column:設置控件在表格第幾列,從0開始計數(shù)rowspan:指的是占有多少行columnspan:指的是占有幾列sticky:對齊方式,N/S/E/W,分別代表上對齊/下對齊/左對齊/右對齊grid布局--gui07grid布局row屬性column屬性rowspan屬性place布局指定組件所在的絕對位置或相對于其他組件的位置,缺點是改變窗口大小時組件不能隨之改變大小布局精準,但使用相對較麻煩參數(shù):X:指定組件的X坐標,x為0代表位于最左邊Y:指定組件的Y坐標,y為0代表位于最上邊place布局--gui08place布局x屬性y屬性Variabletkinter中支持控件與變量的雙向綁定控件內(nèi)容發(fā)生變化時,變量也隨之變化變量值發(fā)生變化時,控件顯示內(nèi)容或值也隨之改變通常設定控件的variable(或類似)屬性進行綁定Variable類型一共有四種類型:StringVar():用于存放String類型的變量IntVar():用于存放整數(shù)類型的變量DoubleVar():用于存放浮點數(shù)類型的變量BoolVar():用于存放布爾類型的變量Variable類型的方法set()方法:設定變量的值get()方法:獲得變量的值Variable雙向綁定gui08bfromtkinterimport*importtkinter.messageboxroot=Tk()root.geometry("300x200+300+300")root.iconbitmap("favicon.ico")root.title("單選按鈕")strVar=StringVar()label=Label(root,text="Label",textvariable=strVar)strVar.set("新的綁定值")label.pack()root.mainloop()Button控件按鈕,其上可以為文本或圖片,用于監(jiān)聽用戶行為,與一個Python函數(shù)關聯(lián),當按鈕被按下時,自動調(diào)用該函數(shù)參數(shù):(/python/python-tk-button.html)master:父框架名稱options:可選項,即可設置屬性text:文本,Button的文本內(nèi)容command:關聯(lián)函數(shù),當按鈕被點擊時,執(zhí)行該函數(shù)Button按鈕--gui09Entry控件文本框,用來讓用戶輸入一行文本字符串參數(shù):master:父框架名稱options:可選項,即可設置屬性textvariable:文本框的值,是一個StringVar()對象Entry文本框--gui10獲取文本框文字設置文本框文字config函數(shù)--gui11在程序中動態(tài)控制某一屬性值時可以使用config函數(shù)舉例:label.config(text="新的值")控件名屬性名屬性值messagebox控件顯示消息框importtkinter.messagebox格式:messagebox.XXXXXX(title,message)參數(shù):title:消息框標題message:消息框提示信息messagebox消息框--gui12messagebox控件函數(shù)說明返回值showinfo提示信息彈窗showwarning警告信息彈窗showerror錯誤信息彈窗askquestion(疑問)是否對話框#是/否,返回值True/Falseaskokcancel(疑問)確定取消對話框#確定/取消,返回值True/Falseaskretrycancel(警告)重試取消對話框#重試/取消,返回值True/Falseaskyesno(疑問)是否對話框#是/否,返回值True/Falseaskyesnocancel(疑問)是否取消對話框#是/否/取消,返回值True/False/NoneListbox控件列表框,用于顯示一個選擇列表參數(shù):master:父框架名稱options:可選項,即可設置屬性listvariable:列表框的值,是一個StringVar()對象,用空格分隔每一項selectmode:設置列表框的種類,可以是SINGLE、EXTENDED、MULTIPLE、或BROWSEListbox控件方法:delete(row[,lastrow]):刪除指定行row,或者刪除row到lastrow之間的行curselection():被選中的選項的序號insert(row,string):在指定列row插入字符串stringget(row):取得指定行row內(nèi)的字符串Listbox列表框--gui13刪除所有項獲取選中項數(shù)據(jù)刪除選中項Text控件多行文本框參數(shù):master:父框架名稱options:可選項,即可設置屬性width:寬度height:高度Text控件方法:insert(index,string):在給定索引處插入指定字符串index特殊值:INSERT(光標當前位置) END(結尾位置)get(startindex,endindex):返回指定范圍內(nèi)的字符delete(startindex,endindex):刪除指定范圍的字符換行使用“\n”Scrollbar控件滾動條,根據(jù)方向可分為垂直滾動條和水平滾動條,一般與列表框和多行文本結合使用在某個組件上安裝垂直滾動條,需要做兩件事:設置該組件的yscrollcommand選項為Scrollbar組件的set()方法設置Scrollbar組件的command選項為該組件的yview()方法Text與Scrollbar組合使用--gui14Menu控件菜單,用于實現(xiàn)頂級菜單、下拉菜單和彈出菜單,頂級菜單是顯示在父窗口標題欄下方參數(shù):master:父框架名稱options:可選項,即可設置屬性label:菜單項顯示的文本command:單擊菜單項的關聯(lián)函數(shù)tearoff:為1,菜單項可以從窗口脫離;為0,不可脫離Menu控件
方法:函數(shù)說明add_command(**options)添加一個普通的命令菜單項add_cascade(**options)添加一個父菜單add_separator(**options)添加一條分割線delete(index1,index2=None)刪除index1~index2(包含)的所有菜單項如果忽略index2參數(shù),則刪除index1指向的菜單項add_checkbutton(**options)添加一個多選按鈕的菜單項add_radiobutton(**options)添加一個單選按鈕的菜單項entrycget(index,option)獲得指定菜單項的某選項的值entryconfig(index,**options)設置指定菜單項的選項Menu菜單--gui15Menu菜單擴展--gui15filedialog控件文件對話框,打開文件對話框或保存文件對話框語法返回值作用filedialog.asksaveasfilename()含后綴文件目錄另存為窗口彈窗filedialog.asksaveasfile()文件流對象另存為窗口彈窗,會創(chuàng)建文件filedialog.askopenfilename()含后綴文件目錄打開文件彈窗filedialog.askopenfile()文件流對象打開文件彈窗filedialog.askdirectory()目錄名選擇文件彈窗filedialog.askopenfilenames()元組打開多個文件名filedialog.askopenfiles()列表多個文件流對象filedialog控件options:可選項,即可設置屬性defaultextension:指定文件擴展名,如果用戶輸入文件名包含后綴,那么該選項不生效filetypes:指定篩選文件類型的下拉菜單選項,由(類型名,后綴)構成,例如:filetypes=[("PNG",".png"),("JPG",".jpg"),("GIF",".gif")]initialdir:指定打開/保存文件的默認路徑,默認路徑是當前文件夾title:指定文件對話框的標題欄文本filedialog對話框--gui16askopenfileaskopenfilenameasksaveasfileasksaveasfilenameaskdirectory事件處理command參數(shù)事件綁定protocolscommand參數(shù)--gui17command是控件中的一個參數(shù)使用格式:command=函數(shù),當觸發(fā)控件事件(例如Button的單擊,Menu的單擊,Scale的滾動)時會觸發(fā)函數(shù)deffunc():print("hello")btn=Button(root,text="單擊按鈕",command
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國發(fā)動機曲軸行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國鉭電容器行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 高效會議管理培訓課件
- 消防水炮知識培訓課件
- 煤氣安全知識培訓課件
- 2024中國采礦、采石設備制造市場前景及投資研究報告
- 廣西賀州市八步區(qū)2023-2024學年九年級上學期期末化學試題
- 炭疽防控知識培訓課件下載
- 電磁學知識培訓課件
- 市引申蒙氏教學幼兒園工作參考計劃
- 建筑公司員工合規(guī)手冊
- 質(zhì)量保證的基本原則與方法
- 第1講-句子結構
- 鼻腔沖洗護理技術團體標準解讀
- 《流感科普宣教》課件
- 紅領巾知識伴我成長課件
- 廚邦醬油推廣方案
- 腦血管病的三級預防
- 保險產(chǎn)品創(chuàng)新與市場定位培訓課件
- 2022-2023學年山東省淄博四中高二(上)期末數(shù)學試卷含答案
- 《建筑賦比興》一些筆記和摘錄(上)
評論
0/150
提交評論