版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
到目前為止,本書中涉及的所有輸入和輸出都是簡單的文本格式。然而,現(xiàn)代計算機和程序廣泛使用圖形界面。為此,本章將以Tkinter模塊為例,學習如何創(chuàng)建一些簡單的GUI(圖形用戶界面),使我們編寫的程序具備窗體、按鈕等常見的圖形界面元素系。第7章PythonGUI編程7.1PythonGUI庫表7-1所示為常用的PythonGUI庫??傮w而言,Tkinter是Python的標準GUI庫,因其易用性和內(nèi)置特性,特別適合快速開發(fā)簡單的圖形界面應用。7.1.1創(chuàng)建Windows窗口7.1.2幾何布局管理器7.1.1創(chuàng)建Windows窗口我們從最簡單的Windows窗口開始?!纠?-1】編寫程序,使用Tkinter創(chuàng)建一個Windows窗口的GUI程序。importtkinter#導入Tkinter模塊win=tkinter.Tk()#創(chuàng)建Windows窗口對象win.title('一個GUI程序')#設置窗口標題win.mainloop()#進入消息循環(huán),顯示窗口程序運行結果如圖7-1所示。7.1.2幾何布局管理器Tkinter的幾何布局管理器(geometrymanager)用于組織和管理父組件(通常是窗口)中子組件的布局方式。Tkinter提供了三種不同風格的幾何布局管理器:pack、grid和place。pack幾何布局管理器grid幾何布局管理器place幾何布局管理器7.2常用Tkinter組件的使用常用Tkinter組件提供了多種控件,如按鈕、標簽和文本框,可以方便開發(fā)者構建功能豐富的GUI應用程序。7.2.1Tkinter組件7.2.2標準屬性7.2.3標簽7.2.4按鈕7.2.5單行/多行文本框7.2.6列表框7.2.7單選按鈕和復選框7.2.8菜單7.2.9對話框7.2.10消息窗口7.2.11框架7.2.12滾動條7.2.1Tkinter組件Tkinter提供了多種組件(控件),如按鈕、標簽和文本框,以供GUI應用程序使用。這些組件通常被稱為控件或部件,如表7-5所示。7.2.2標準屬性組件的標準屬性是所有組件(控件)的共同屬性,例如大小、字體和顏色等。常用的標準屬性見表7-6。7.2.3標簽Label組件用于在窗口中顯示文本或位圖。常用屬性如表7-7所示。7.2.4按鈕Button組件是標準的Tkinter控件,用于實現(xiàn)各種類型的按鈕。按鈕可以包含文本或圖像,并可以通過command屬性將函數(shù)或方法與按鈕關聯(lián)。當按鈕被按下時,會自動調用指定的函數(shù)或方法。按鈕可以僅顯示單行文本,也支持跨多行顯示。此外,文本中的某個字符可以通過下劃線來標記,以指示對應的鍵盤快捷鍵。TkinterButton組件的屬性和方法如表7-8和表7-9所示。7.2.5單行/多行文本框Entry單行文本框主要用于輸入單行內(nèi)容和顯示文本,便于將用戶參數(shù)傳遞給程序。下面通過一個簡單的程序示例,演示如何使用該組件來實現(xiàn)攝氏度與華氏度的轉換。創(chuàng)建和顯示Entry對象獲取Entry組件的內(nèi)容Entry的常用屬性7.2.6列表框列表框組件Listbox用于顯示多個項目,并允許用戶選擇一個或多個項目。創(chuàng)建和顯示Listbox對象插入文本項返回選中項索引刪除文本項獲取項目內(nèi)容獲取項目個數(shù)獲取Listbox內(nèi)容7.2.7單選按鈕和復選框單選按鈕(Radiobutton)和復選框(Checkbutton)分別用于實現(xiàn)選項的單選和多選功能。Radiobutton允許用戶在同一組單選按鈕中選擇一個選項(不能同時選中多個),而Checkbutton則允許用戶選擇一項或多項。創(chuàng)建和顯示Radiobutton對象Radiobutton組件常用屬性Radiobutton組件的方法創(chuàng)建和顯示Checkbutton對象Checkbutton組件常用屬性獲取Checkbutton狀態(tài)7.2.8菜單在圖形用戶界面應用程序中,通常會提供菜單功能,這些菜單包含各種按照主題分組的基本命令。圖形用戶界面應用程序主要包括兩種類型的菜單。 主菜單:提供窗體的整體菜單系統(tǒng)。用戶通過單擊主菜單可以展開子菜單,選擇相應的命令以執(zhí)行相關操作。常見的主菜單通常包括“文件”、“編輯”、“視圖”、“幫助”等選項。 上下文菜單(也稱為快捷菜單):通過鼠標右鍵單擊某個對象時彈出的菜單,通常包含與該對象相關的常用命令,如“剪切”、“復制”、“粘貼。創(chuàng)建和顯示Menu對象添加下拉菜單在菜單中添加復選框在菜單中添加分隔符創(chuàng)建上下文菜單7.2.9對話框對話框用于與用戶交互并檢索信息。Tkinter模塊中的子模塊包括messagebox、filedialog、colorchooser和simpledialog,這些模塊提供了一些通用的預定義對話框。同時,用戶也可以通過繼承TopLevel類來創(chuàng)建自定義對話框。文件對話框顏色對話框簡單對話框7.2.10消息窗口消息窗口(messagebox)用于彈出提示框,以向用戶發(fā)出警告或詢問用戶的下一步操作。消息框有多種類型,常用的包括info、warning、error、yesno和okcancel等。不同類型的消息框包含不同的圖標、按鈕以及彈出時的提示音,以適應不同的使用場景和需求。7.2.11框架Frame組件是一個重要的框架組件,用于對其他組件進行分組和組織,負責安排這些組件的位置。Frame組件在屏幕上顯示為一個矩形區(qū)域,充當其他組件的容器。創(chuàng)建和顯示Frame對象向Frame組件中添加組件LabelFrame組件刷新Frame7.2.12滾動條Scrollbar組件是用于實現(xiàn)滾動功能的滾動條組件。根據(jù)方向,滾動條可分為垂直滾動條和水平滾動條。Scrollbar組件常用于實現(xiàn)文本、畫布(Canvas)和列表框(Listbox)的滾動效果。水平滾動條還可以與輸入框(Entry)結合使用。要在某個組件上添加垂直滾動條,通常需要執(zhí)行以下兩個步驟。(1)將該組件的yscrollcommand選項設置為Scrollbar組件的set()方法。(2)將Scrollbar組件的command選項設置為該組件的yview()方法。7.3圖形繪制利用Tkinter庫中的Canvas組件,可以提供了一個靈活的畫布區(qū)域,用于繪制圖形、文本和組件,從而實現(xiàn)復雜的圖形界面和動畫效果。7.3.1Canvas畫布組件7.3.2Canvas畫布對象7.3.1Canvas畫布組件Canvas(畫布)是一個矩形區(qū)域,主要用于圖形繪制或復雜的圖形界面布局。在畫布上,用戶可以繪制圖形、文本,并放置各種組件和框架。要創(chuàng)建一個Canvas對象,可以使用以下方法:Canvas對象=Canvas(窗口對象,選項,...)常用的選項如表7-14所示。7.3.2Canvas畫布對象在Canvas畫布上可以繪制各種圖形對象。表7-15所示為一些常用的繪制函數(shù)。繪制圖形對象繪制圓弧繪制線條繪制矩形繪制多邊形繪制橢圓繪制文字繪制位圖繪制圖像修改圖形對象坐標移動圖形對象刪除圖形對象刪除圖形對象7.4Tkinter字體通過組件的font屬性,可以設置其顯示文本的字體。在設置組件字體之前,首先需要能夠表示一個字體。7.4.1通過元素表示字體7.4.2通過元素表示字體7.4.1通過元素表示字體可以使用包含三個元素的元組來表示字體,格式為:(fontfamily,size,modifiers)其中:
fontfamily是字體名稱。
size是字體大小,單位為點(points)。
modifiers包含樣式修飾符,例如粗體、斜體和下畫線。例如:("TimesNewRoman","16")#16點的Times字體("TimesNewRoman","28","bolditalic")#28點的Times字體,且為粗體和斜體7.4.2通過元素表示字體使用tkFont.Font來創(chuàng)建字體,格式如下:ft=tkFont.Font(family='字體名',size,weight,slant,underline=1,overstrike)其中:
size為字體大小;
weight可選值為'bold'(粗體)或'normal'(正常);
slant可選值為'italic'(斜體)或'normal'(正常);
underline為1(下劃線)或0(無下劃線);
overstrike為1(刪除線)或0(無刪除線)。7.5Python事件處理事件(event)是指在程序中發(fā)生的各種情況,例如用戶按下鍵盤的某個鍵、單擊鼠標或移動鼠標。對于這些事件,程序需要做出相應的反應。Tkinter提供的組件通常能夠識別特定的事件。例如,當按鈕被單擊時可以執(zhí)行特定操作,或者當輸入框獲得焦點并且用戶敲擊鍵盤時,輸入的內(nèi)容會顯示在輸入框內(nèi)。程序可以通過事件處理函數(shù)來定義在觸發(fā)某個事件時所執(zhí)行的操作。7.5.1事件類型7.5.2事件綁定7.5.2事件處理函數(shù)7.5.1事件類型事件類型的通用格式為:<[modifier-]…type[-detail]>其中,事件類型必須放置于尖括號內(nèi)。type描述事件的類型,例如鍵盤按鍵或鼠標單擊。modifier用于定義組合鍵,例如Control、Alt等。detail用于明確指定哪個鍵或按鈕觸發(fā)了事件,例如1表示鼠標左鍵,2表示鼠標中鍵,3表示鼠標右鍵。例如:
<Button-1>表示按下鼠標左鍵。
<KeyPress-A>表示按下鍵盤上的A鍵。
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 苗木安全協(xié)議書
- 蘋果售后協(xié)議書
- 蔬菜論斤協(xié)議書
- 視力康復協(xié)議書
- 認領土地協(xié)議書
- 設備調借協(xié)議書
- 設計退款協(xié)議書
- 試用協(xié)議還合同
- 食堂購買合同范本
- 廣告牌價合同范本
- 2025年超星爾雅學習通《創(chuàng)新思維與創(chuàng)新方法》考試備考題庫及答案解析
- 四川省金太陽2025-2026學年高三上學期11月聯(lián)考英語試卷(含答案詳解)
- 血糖儀項目計劃書
- 電氣工程項目驗收規(guī)范及標準
- 種植樹苗管護合同范本
- 2023年環(huán)評工程師考試環(huán)境影響評價相關法律法規(guī)講義
- 2025工業(yè)智能體應用現(xiàn)狀、挑戰(zhàn)及對策建議報告-
- 人工流產(chǎn)術后宣教
- 《危險化學品安全法》知識培訓
- 2025年新版《高標準農(nóng)田建設項目竣工驗收辦法(試行)》
- 轉讓酒店合同協(xié)議書范本
評論
0/150
提交評論