![Python程序設(shè)計(jì)課件第11章GUI界面編程_第1頁](http://file4.renrendoc.com/view/3e8daffdad578a05ba718c9a73e6c26c/3e8daffdad578a05ba718c9a73e6c26c1.gif)
![Python程序設(shè)計(jì)課件第11章GUI界面編程_第2頁](http://file4.renrendoc.com/view/3e8daffdad578a05ba718c9a73e6c26c/3e8daffdad578a05ba718c9a73e6c26c2.gif)
![Python程序設(shè)計(jì)課件第11章GUI界面編程_第3頁](http://file4.renrendoc.com/view/3e8daffdad578a05ba718c9a73e6c26c/3e8daffdad578a05ba718c9a73e6c26c3.gif)
![Python程序設(shè)計(jì)課件第11章GUI界面編程_第4頁](http://file4.renrendoc.com/view/3e8daffdad578a05ba718c9a73e6c26c/3e8daffdad578a05ba718c9a73e6c26c4.gif)
![Python程序設(shè)計(jì)課件第11章GUI界面編程_第5頁](http://file4.renrendoc.com/view/3e8daffdad578a05ba718c9a73e6c26c/3e8daffdad578a05ba718c9a73e6c26c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、GUI概述與窗口布局基于wxPython框架的GUI開發(fā)第11章 GUI界面編程參考書目Python 程序設(shè)計(jì)GUI概述與窗口布局第11章 GUI界面編程參考書目Pyt目錄GUI概述與窗口布局基于wxPython框架的GUI開發(fā)這里說明圖片內(nèi)容 目錄GUI概述與窗口布局這里說明圖片內(nèi)容 GUI概述與窗口布局基于wxPython框架的GUI開發(fā)目錄這里說明圖片內(nèi)容 GUI概述與窗口布局目錄這里說明圖片內(nèi)容 GUI概述與窗口布局1 什么是GUIGUI (Graphical User Interface,圖形用戶接口)是指用圖形方式顯示計(jì)算機(jī)操作的用戶界面。圖形用戶界面一般有以下5個元素組成:組件窗
2、體屬性事件方法GUI概述與窗口布局1 什么是GUIGUI (GraphicGUI概述與窗口布局1 什么是GUIPython有許多優(yōu)秀的GUI工具集,下面介紹Tkinter和wxPython兩個GUI工具。Tk圖形用戶界面工具包標(biāo)準(zhǔn)的Python接口。Tkinter的調(diào)用轉(zhuǎn)換成Tcl命令,然后交給Tcl解釋器進(jìn)行解釋,實(shí)現(xiàn)Python的GUI界面Tkinter作為優(yōu)秀的跨平臺GUI庫 wxWidgets 的Python封裝和Python模塊的方式提供給用戶的。是一款開源軟件,并且具有非常優(yōu)秀的跨平臺能力wxPythonGUI概述與窗口布局1 什么是GUIPython有許多優(yōu)秀的GUI概述與窗口布
3、局1 什么是GUIGUI應(yīng)用程序都是基于窗口的,其程序的流程一般如下:1.定義主窗口2.創(chuàng)建主窗口3.創(chuàng)建主窗口內(nèi)的組件4.顯示主窗口5.進(jìn)入消息接收和處理的循環(huán)過程GUI程序執(zhí)行后不會主動退出,都停留在接收消息,根據(jù)消息執(zhí)行相應(yīng)操作的循環(huán)中。GUI概述與窗口布局1 什么是GUIGUI應(yīng)用程序都是基于窗GUI概述與窗口布局1 什么是GUIGUI程序的消息處理模型如下:以觸摸屏為例,當(dāng)用戶點(diǎn)擊觸摸屏,首先感知到屏幕上被觸摸的XY坐標(biāo)是操作系統(tǒng)內(nèi)核空間的觸摸屏設(shè)備驅(qū)動程序,然后設(shè)備驅(qū)動程序會將用戶操作封裝成消息傳遞給GUI程序運(yùn)行時(shí)創(chuàng)建的消息隊(duì)列,GUI程序在運(yùn)行過程中需要實(shí)時(shí)處理隊(duì)列中的消息,當(dāng)
4、隊(duì)列沒有消息時(shí),程序?qū)⑻幱谕顟B(tài)。GUI概述與窗口布局1 什么是GUIGUI程序的消息處理模型GUI概述與窗口布局1 什么是GUIGUI程序的開發(fā),一般分為兩部分:在代碼中用程序創(chuàng)建窗口及窗口內(nèi)元素;1編寫消息處理函數(shù)對內(nèi)核空間發(fā)來的消息做出響應(yīng)。2GUI概述與窗口布局1 什么是GUIGUI程序的開發(fā),一般分GUI概述與窗口布局3 布局管理器圖形用戶界面中一般需要放置多種用戶組件,比如按鈕、輸入框、文本框等。布局管理器管理界面中的組件位置和大小的設(shè)置。常用的布局管理器如下:不使用任何布局管理器,將控件放在固定的位置絕對位置布局將控件按照網(wǎng)格方式排列,將容器分成規(guī)則矩形塊GridLayout(
5、網(wǎng)格布局)默認(rèn)的對齊方式為居中對齊,布局方式為自左向右排列,當(dāng)一行排滿后自動換行FlowLayout(流式布局)把容器簡單的劃分為東、西、南、北、中5個區(qū)域每個區(qū)域只能加入一個控件BorderLayout(邊框布局)GUI概述與窗口布局3 布局管理器圖形用戶界面中一般需要放置GUI概述與窗口布局基于wxPython框架的GUI開發(fā)目錄這里說明圖片內(nèi)容 GUI概述與窗口布局目錄這里說明圖片內(nèi)容 基于wxPython框架的GUI開發(fā)1 wxPython框架安裝與配置使用pip工具安裝wxPython:pip install -U wxPython基于wxPython框架的GUI開發(fā)1 wxPyth
6、on框架基于wxPython框架的GUI開發(fā)2 利用wx.App子類創(chuàng)建窗體在開始創(chuàng)建應(yīng)用程序之前,先創(chuàng)建一個沒有任何功能的子類。創(chuàng)建和使用一個wx.App子類,需要執(zhí)行如下4個步驟:定義子類在定義的子類中寫一個OnInit()初始化方法在程序的主要部分創(chuàng)建這個類的實(shí)例調(diào)用應(yīng)用程序?qū)嵗腗ainLoop()方法,這個方法將程序的控制權(quán)轉(zhuǎn)交給wxPthon基于wxPython框架的GUI開發(fā)2 利用wx.App子類基于wxPython框架的GUI開發(fā)2 利用wx.App子類創(chuàng)建窗體【例】利用wx.App子類創(chuàng)建窗體。import wxclass App(wx.App): def OnInit(s
7、elf): frame = wx.Frame(parent=None,title=人生苦短,我愛Python) frame.Show() return Trueif _name_ = _main_: app = App() app.MainLoop()基于wxPython框架的GUI開發(fā)2 利用wx.App子類基于wxPython框架的GUI開發(fā)4 使用wxPython框架創(chuàng)建窗體在GUI中框架通常也稱為窗口??蚣苁且粋€容器,用戶可以將它在屏幕上任意移動,并可對它進(jìn)行縮放,它通常包含諸如標(biāo)題欄、菜單等。在wxPython中,wx.Frame是所有框架的父類。當(dāng)創(chuàng)建wx.Frame的子類時(shí),子類
8、應(yīng)該調(diào)用其父類的構(gòu)造器wx.Frame._init_()。wx.Frame的構(gòu)造器語法格式如下:wx.Frame(parent, id= -1,title=,pos =wx.DefaultPosition,size=wx.DefaultSize,style=wx.DEFAULT_FRAME_STYLE,name=frame)基于wxPython框架的GUI開發(fā)4 使用wxPython基于wxPython框架的GUI開發(fā)4 使用wxPython框架創(chuàng)建窗體【例】利用wx.Frame創(chuàng)建窗體示例。import wxclass MyFrame(wx.Frame): def _init_(self,
9、parent, id): wx.Frame._init_(self, parent, id, title=人生苦短,我愛Python, pos=(200,200), size=(400,300)if _name_=_main_: app = wx.App() frame = MyFrame(parent=None, id=-1) frame.Show() app.MainLoop() 基于wxPython框架的GUI開發(fā)4 使用wxPython基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件1.StaticText文本類創(chuàng)建完窗口以后,會在在窗口上添加的按鈕、文本、輸入
10、框等控件。wx.StaticText(parent,id,label,pos=wx.DefaultPosition,size=wx.DefaultSize,style=0,name=staticText)在wxPython中,繪制純文本使用類wx.StaticText來完成。使用wx.StaticText能夠改變文本的對齊方式、字體、顏色等?!纠縞enter = wx.StaticText(panel, -1, 白日依山盡,黃河入海流。n欲窮千里目,更上一層樓。, (100, 80), (200, 200), wx.ALIGN_CENTER)基于wxPython框架的GUI開發(fā)5 wxPyt
11、hon框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件1.StaticText文本類wx.Font(pointSize, family, style, weight, underline=False, faceName=,encoding=wx.FONTENCODING_DEFAULT)wx.Font創(chuàng)建字體,通過設(shè)置屬性對界面中的字體進(jìn)行設(shè)置。pointSize:字體的整數(shù)尺寸,單位為磅。family: 用于快速指定一個字體而無須知道該字體的具體名字。style: 指明字體的醒目程度underline:僅僅在Windows系統(tǒng)下有效果,如果值為True,有下畫線,
12、False無下畫線faceName:指定字體名encoding: 允許在幾個編碼中選擇一個,大多數(shù)情況下可以使用默認(rèn)編碼基于wxPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件2.TextCtrl輸入文本類wx.TextCtrl(parent, id, value=, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, validator=wx.DefaultValidator,name=wx.TextCtrlNameStr)wx.StaticText類只能用于顯
13、示靜態(tài)的文本,要想輸入文件與用戶進(jìn)行交互,要用wx.TextCtrl類,它允許單行和多行文本。它也可以作為密碼輸入控件,掩飾所按下的按鈕。基于wxPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件import wx # 導(dǎo)入wxPythonclass MyFrame(wx.Frame): def _init_(self, parent, id): wx.Frame._init_(self, parent, id, title=會員管理系統(tǒng)用戶登錄界面, size=(400, 300) panel = wx.Panel(s
14、elf) # 創(chuàng)建面板 # 創(chuàng)建文本和輸入框 self.title = wx.StaticText(panel, label=歡迎使用會員管理系統(tǒng), pos=(140, 20) self.label_user = wx.StaticText(panel, label=用戶名:, pos=(50, 50) self.text_user = wx.TextCtrl(panel, pos=(100, 50), size=(235, 25), style=wx.TE_LEFT) self.label_pwd = wx.StaticText(panel, label=密 碼:, pos=(50, 90)
15、 self.text_pwd = wx.TextCtrl(panel, pos=(100, 90), size=(235, 25), style=wx.TE_PASSWORD)【例】用wx.TextCtrl類和wx.StaticText類實(shí)現(xiàn)一個包含用戶名和密碼的登錄界面?;趙xPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件if _name_ = _main_: app = wx.App() # 初始化應(yīng)用 frame = MyFrame(parent=None, id=-1) # 初始化MyFrame類,并傳遞參
16、數(shù) frame.Show() # 顯示窗口 app.MainLoop() # 調(diào)用主循環(huán)方法【例】用wx.TextCtrl類和wx.StaticText類實(shí)現(xiàn)一個包含用戶名和密碼的登錄界面?;趙xPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件3.Button按鈕類wx.Button(parent, id, label, pos, size=wxDefaultSize, style=0,validator,name=button)按鈕是GUI界面中應(yīng)用最為廣泛的控件,它常常用于捕獲用戶生成的單擊事件。其最明顯的用途是
17、觸發(fā)綁定到一個處理函數(shù)。# 創(chuàng)建確定和取消的界面 self.bt_confirm = wx.Button(panel, label=確定, pos=(105, 130) self.bt_cancel = wx.Button(panel, label=取消, pos=(195, 130)基于wxPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件4.BoxSizer布局wxPython有另一種更智能的布局方式:sizer(尺寸器)。sizer是用于自動布局一組窗口控件的算法。當(dāng)sizer被附加到一個容器中,通常是一個框架或面
18、板。在父容器中創(chuàng)建子窗口控件必須被分別添加到sizer中。當(dāng)sizer被附加到容器時(shí),它隨后就可以管理它所包含的子布局??丶膸缀挝恢檬墙^對位置,即固定的。當(dāng)調(diào)整窗口大小時(shí),由于控件坐標(biāo)不能隨著界面的大小變化,會導(dǎo)致界面變得不夠美觀基于wxPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件4.BoxSizer布局sizer名稱描述BoxSizer在一條水平或重垂直窗口部件的布局??刂拼翱诓考谛袨樯虾莒`活。一般用于嵌套的樣式,應(yīng)用面廣GridSizer一個基礎(chǔ)的網(wǎng)格布局,當(dāng)你要放置的窗口部件是同樣的尺寸且整齊地放入一個規(guī)
19、則的網(wǎng)格中可以使用它FlexGridSizer對GridSizer做了一定改變,窗口部件有不同的尺寸時(shí),可以有更好的結(jié)果GridBagSizerGridSizer系列中最靈活的成員。網(wǎng)絡(luò)中的窗口部件可以隨意放置StaticBoxSizer一個標(biāo)準(zhǔn)的BoxSizer,常有標(biāo)題和環(huán)線基于wxPython框架的GUI開發(fā)5 wxPython框架基于wxPython框架的GUI開發(fā)5 wxPython框架中常用的控件4.BoxSizer布局使用Add()方法將控件加入sizer # 添加容器,容器中的控件按縱向排列 vsizer = wx.BoxSizer(wx.VERTICAL) vsizer.Add(self.title, proportion=0, flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTRE, border = 15) panel.SetSizer(vsizer)Box
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版七年級數(shù)學(xué)上冊 3.3 《解一元一次方程》聽評課記錄1
- 人教版歷史七年級上冊第14課《溝通中外文明的“絲綢之路”》聽課評課記錄
- 現(xiàn)場電力服務(wù)合同(2篇)
- 生活設(shè)施租賃協(xié)議書(2篇)
- 新版湘教版秋八年級數(shù)學(xué)上冊第二章三角形課題已知邊角作三角形聽評課記錄
- 新版華東師大版八年級數(shù)學(xué)下冊《18.2平行四邊形的判定》聽評課記錄
- 湘教版數(shù)學(xué)八年級下冊4.3《一次函數(shù)的圖象》聽評課記錄1
- 魯人版道德與法治七年級下冊13.3《正視壓力 輕松前行》聽課評課記錄
- 2022年新課標(biāo)八年級上冊歷史第3課太平天國運(yùn)動聽課評課記錄
- 人教版九年級數(shù)學(xué)上冊22.2.1《二次函數(shù)與一元二次方程》聽評課記錄
- 裝修工程延期協(xié)議
- 《梅大高速茶陽路段“5·1”塌方災(zāi)害調(diào)查評估報(bào)告》專題警示學(xué)習(xí)
- 2024年09月北京中信銀行北京分行社會招考(917)筆試歷年參考題庫附帶答案詳解
- 《大健康解讀》課件
- 2025年度交通運(yùn)輸規(guī)劃外聘專家咨詢協(xié)議3篇
- 2024年04月北京中信銀行北京分行社會招考(429)筆試歷年參考題庫附帶答案詳解
- 專項(xiàng)債券培訓(xùn)課件
- 《會務(wù)的組織和管理》課件
- 2024年公司領(lǐng)導(dǎo)在新年動員會上的講話樣本(3篇)
- 《倒虹吸管安全評價(jià)導(dǎo)則》
- 2025年中國濕度傳感器行業(yè)深度分析、投資前景、趨勢預(yù)測報(bào)告(智研咨詢)
評論
0/150
提交評論