版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Python 3 程序設(shè)計 主講教師: 人民郵電出版社11 tkinter GUI編程人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列第11章 tkinter GUI編程 本章內(nèi)容本章內(nèi)容 tkinter編程概述 tkinter GUI的布局管理 tkinter的常用組件 tkinter的事件處理 tkinter GUI的應(yīng)用開發(fā)圖形用戶界面(GUI)應(yīng)用程序是Python的重要應(yīng)用之一,標準庫tkinter用來實現(xiàn)圖形用戶界面。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.1 tkinter編程概述編程概述tkinter模塊是Python事
2、實上的GUI庫,包含在Python的基本安裝包中。使用tkinter模塊編寫的GUI程序是跨平臺的,可在多種操作系統(tǒng)中運行。 第一個第一個tkinter GUI程序程序 組件和容器是GUI編程的兩個基本概念。 組件是指標簽、按鈕、列表框等對象,需將其放在容器中顯示。 容器是指可放置其他組件或容器的對象。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.1 tkinter編程概述編程概述 第一第一個個tkinter GUI程序程序 tkinter GUI編程步驟(1)導入tkinter模塊。import tkinter 或 from tkinter import *(2
3、)創(chuàng)建主窗口對象,如果未創(chuàng)建主窗口對象,tkinter將以默認的頂層窗口作為主窗口。(3)創(chuàng)建標簽、按鈕、輸入文本框等組件對象。(4)打包組件,將組件顯示在其父容器中。pack()(5)啟動事件循環(huán),GUI窗口啟動,等待響應(yīng)用戶操作。mainloop() 例11-1 帶有標簽和按鈕的tkinter GUI程序。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.1 tkinter編程概述編程概述 設(shè)置窗口和組件的屬性設(shè)置窗口和組件的屬性 設(shè)置窗口屬性常用的方法有title()、geometry()和config()方法。1. title()方法和geometry()方法
4、title()方法用于設(shè)置窗口的標題,geometry()用于方法設(shè)置窗口的大小。geometry()方法中的參數(shù)格式為“寬度x高度” 。例11-2 設(shè)置了標題和大小的窗口。2. config()方法config()方法用于設(shè)置組件文本、對齊方式、前景色、背景色、字體等屬性。例11-3 使用config()方法配置組件屬性。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.2 tkinter GUI的布局管理的布局管理 容器中組件的布局是很繁瑣的,需要調(diào)整組件自身的大小,還要設(shè)計和其他組件的相對位置。 實現(xiàn)組件布局的方法被稱為布局管理器或幾何管理器。 tkinter使
5、用三種方法來實現(xiàn)布局:pack()、grid()、place(),。 Frame作為中間層的容器組件,可以分組管理組件,實現(xiàn)復雜的布局。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.2 tkinter GUI的布局管理的布局管理 使用使用pack()方法的方法的布局布局 pack()方法以塊的方式布局組件。 pack()方法將組件顯示在默認位置,是最簡單、直接的用法。 pack()方法的參數(shù): side表示組件在容器中的位置; expand表示組件可拉伸; fill取值為X、Y或BOTH,填充X或Y方向上的空間; anchor表示組件在窗口中位置。人民郵電出版社P
6、ython 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.2 tkinter GUI的布局管理的布局管理 使用使用grid()方法的布局方法的布局 使用grid()方法的布局被稱為網(wǎng)格布局,它按照二維表格的形式,將容器劃分為若干行和列,組件的位置由行列所在位置確定。 在同一容器中,只能使用pack()方法或grid()方法中的一種布局方式。 grid()方法的參數(shù): row和column,組件所在的行和列的位置 rowspan和columnspan,組件從所在位置起跨的行數(shù)和跨的列數(shù) sticky,組件所在位置的對齊方式 例11-6 使用grid()方法設(shè)置組件布局。人民郵電出版社Pytho
7、n 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.2 tkinter GUI的布局管理的布局管理 使用使用place()方法的布局方法的布局 比grid()和pack()布局更精確地控制組件在容器中的位置。 如果容器大小調(diào)整,可能會出現(xiàn)布局不適應(yīng)的情況。 place()方法的參數(shù) x和y,用絕對坐標指定組件的位置 height和width,指定組件的高度和寬度 relx和rely,按容器高度和寬度的比例來指定組件的位置 relheight和relwidth,按容器高度和寬度的比例來指定組件的高度和寬度 例11-7 使用place ()方法的布局。人民郵電出版社Python 3 程序設(shè)計程序設(shè)
8、計程序設(shè)計新形態(tài)精品系列11.2 tkinter GUI的布局管理的布局管理 使用框架的復雜布局使用框架的復雜布局 框架( Frame),容器組件,通常用于對組件進行分組 可以從而實現(xiàn)復雜的布局。 例11-8 用Frame實現(xiàn)的復雜布局。屬性屬性說明說明bd指定邊框?qū)挾萺elief指定邊框樣式,取值為FLAT(扁平,默 認 值 ) 、 R A I S E D ( 凸 起 ) 、 SUNKEN(凹陷)、RIDGE(脊狀)、GROOVE(凹槽)和 SOLID(實線)width和和height設(shè)置寬度或高度,如果忽略,容器通 常 根 據(jù) 內(nèi) 容 組 件 的 大 小 自 整Frame大小人民郵電出版社
9、Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列 11.3 tkinter的常用組件 Label組件組件 創(chuàng)建標簽的組件,主要用于顯示不可修改的文本、圖片或者圖文混排內(nèi)容。屬性屬性說明說明text設(shè)置標簽顯示的文本bg和和fg指定組件的背景色和前景色width和和height指定組件的寬度和高度padx和和pady組件內(nèi)文本 左右和上下 的預留空白寬度)anchor設(shè)置文本在組件內(nèi)部的位置justify設(shè)置文本對齊方式font設(shè)置字體例例11-9 測試標簽的屬性測試標簽的屬性。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列 11.3 tkinter的常用組件 B
10、utton組件組件 創(chuàng)建按鈕,用于響應(yīng)用戶的單擊操作,即單擊按鈕時將執(zhí)行指定的函數(shù)。 Button組件的command屬性用于指定響應(yīng)函數(shù)。 例11-10 單擊Button按鈕計算1100的累加值人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列 11.3 tkinter的常用組件 Entry組件組件 輸入組件,用于顯示和輸入簡單的單行文本。 部分屬性與Label組件相同。屬性屬性/方法方法說明說明state設(shè)置組件狀態(tài)。validate設(shè)置執(zhí)行validatecommand校驗函數(shù)的時間validatecommand設(shè)置校驗函數(shù)textvariable獲取組件內(nèi)容的變量g
11、et()返回組件中的全部字符delete( first,last=None)刪除從 first開始到last之前的字符 Entry組件的常用屬性和方法人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11tkinter的常用組件 Entry組件組件 控制變量控制變量??刂谱兞渴呛徒M件相關(guān)聯(lián)的一種對象。 例如,控制變量與Entry組件關(guān)聯(lián)時,控制變量的值隨Entry組件的文本會關(guān)聯(lián)變化;將控制變量與Radiobutton組件(單選按鈕組)關(guān)聯(lián)時,改變單選按鈕選擇時,控制變量的值隨之改變;反之,改變控制變量的值,對應(yīng)值的單選按鈕被選中。 例11-11 輸入數(shù)據(jù)并計算累加和。著重
12、體會控制變量的概念。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列 11.3 tkinter的常用組件 Listbox組件組件 創(chuàng)建列表框,允許用戶一次選擇一個或多個列表項。 Listbox組件的部分屬性組件的部分屬性和方法和方法 Listvariable屬性關(guān)聯(lián)一個StringVar類型的控制變量,該變量關(guān)聯(lián)列表框全部選項, Selectmode用于設(shè)置列表項選擇模式, activate(index)方法用于選中index對應(yīng)的列表項。 cursection()方法返回方法返回包含選中項包含選中項index的元組,無選中時返回的元組,無選中時返回空空元組。元組。 in
13、sert(index, relements)方法在方法在index位置插入一個或多個列表位置插入一個或多個列表項。項。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列 11.3 tkinter的常用組件 Listbox組件組件 get( first,last=None),返回包含first,last范圍內(nèi)的列表項的文本元組。 Listbox組件的部分方法將列表項位置(index)作為參數(shù)。Listbox組件中第一個列表項的index值為0,最后一個列表項index可以使用常量tkinter.END表示。當前選中列表項的index值用常量tkinter.ACTIVE表示。
14、例例11-12 列表框操作示例。列表框操作示例。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列 11.3 tkinter的常用組件 其他組件其他組件 Radiobutton組件,用于創(chuàng)建單選按鈕組。 Checkbutton組件,用于創(chuàng)建復選框,用來標識是否選定某個選項。 Text組件,用來顯示和編輯多行文本。 Spinbox輸入組件,用于創(chuàng)建在一組選項或一定范圍的數(shù)字內(nèi)滾動選擇的組件。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.4 tkinter的事件處理的事件處理 圖形用戶界面經(jīng)常需要用戶對鼠標、鍵盤等操作做出反應(yīng),這就是事件處理事件處
15、理。 產(chǎn)生事件的鼠標、鍵盤等稱作事件源,其操作稱為事件事件。 對這些事件作出響應(yīng)的函數(shù),稱為事件處理程序事件處理程序。 事件處理通常使用組件的command參數(shù)參數(shù)或組件的bind()方法方法來實現(xiàn)。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.4 tkinter的事件處理的事件處理 使用使用command參數(shù)實現(xiàn)事件處理參數(shù)實現(xiàn)事件處理 單擊按鈕時,將會觸發(fā)Button組件的command參數(shù)指定的函數(shù)。實際上是主窗口負責監(jiān)聽發(fā)生的事件,單擊按鈕時將觸發(fā)事件,然后調(diào)用指定的函數(shù)。 由command參數(shù)指定的函數(shù)也叫回調(diào)函數(shù)。 Radiobutton、Checkb
16、utton、Spinbox等組件,都支持使用command參數(shù)進行事件處理。 例11-17是一個窗體驗證的示例,單擊按鈕對提交的數(shù)據(jù)進行驗證,為了簡化程序,用戶名和密碼保存在一個字典中。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.4 tkinter的事件處理的事件處理 使用組件的使用組件的bind()方法實現(xiàn)事件處理方法實現(xiàn)事件處理 使用bind()方法來為組件事件綁定處理函數(shù)可以實現(xiàn)事件處理。widget.bind(event,handler)widget是事件源事件源,即產(chǎn)生事件的組件;event是事件事件或事件名稱;hander是事件處理程序。 常見事件名
17、稱如下。單擊鼠標左鍵單擊鼠標左鍵1/Button-1/ButtonPress-1松開鼠標左鍵松開鼠標左鍵ButtonRelease-1單擊鼠標右鍵單擊鼠標右鍵3/Button-3雙擊鼠標左鍵雙擊鼠標左鍵Double-1/Double-Button-1雙擊鼠標右鍵雙擊鼠標右鍵Double-3拖動鼠標移動拖動鼠標移動B1-Motion鼠標移動到區(qū)域鼠標移動到區(qū)域Enter例11-18 bind()方法實現(xiàn) 的事件處理人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列11.5 tkinger GUI的應(yīng)用的應(yīng)用設(shè)計了一個包含Label組件、Entry組件、Combobox組件、R
18、adiobutton組件、Checkbutton組件的GUI界面。 Combobox組件來自于tkinter.ttk模塊。 程序運行后,輸入考生姓名,選擇考生省份、地區(qū),并選擇考生類別和專業(yè)等信息后,單擊“增加”按鈕,將學生信息添加到列表框中; 選中列表框中的信息后,單擊“刪除”按鈕,將刪除列表框中的信息。人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列人民郵電出版社Python 3 程序設(shè)計程序設(shè)計程序設(shè)計新形態(tài)精品系列小結(jié) 組件組件和容器的概念,設(shè)置窗口和組件的屬性的和容器的概念,設(shè)置窗口和組件的屬性的title()方法、方法、geometry()方法和方法和config()方法。方法。 tkint
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廁所革命項目廁所革命標準制定與實施合同3篇
- 2025年度智能溫室大棚建筑與物聯(lián)網(wǎng)技術(shù)合同4篇
- 2025年度臨時用電安全設(shè)施更新改造協(xié)議4篇
- 2025年度美團外賣商家客戶關(guān)系管理系統(tǒng)協(xié)議4篇
- 2025年建筑材料綠色生產(chǎn)技術(shù)研發(fā)與應(yīng)用合同3篇
- 2025年鴨苗養(yǎng)殖與冷鏈物流銷售合同規(guī)范3篇
- IT行業(yè)專屬保密合同書樣本下載版B版
- 科技前沿西安創(chuàng)新企業(yè)概覽
- 個人車輛租賃(2024版)
- 孕婦職場活力秘訣工作與健康雙豐收
- 高校鑄牢中華民族共同體意識教育的路徑研究
- 《面神經(jīng)炎護理措施分析》3900字(論文)
- 城市微電網(wǎng)建設(shè)實施方案
- 企業(yè)文化融入中華傳統(tǒng)文化的實施方案
- 9.1增強安全意識 教學設(shè)計 2024-2025學年統(tǒng)編版道德與法治七年級上冊
- 《化工設(shè)備機械基礎(chǔ)(第8版)》全套教學課件
- 人教版八年級數(shù)學下冊舉一反三專題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學生版+解析)
- 2024屆上海高考語文課內(nèi)古詩文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學要背誦記憶知識點(概念+公式)
- 駕照體檢表完整版本
評論
0/150
提交評論