版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
GUI本章,學(xué)習(xí)GUI(Graphics 即圖形用戶(hù)界面編程,我們可以通過(guò)python提供的豐富的GUI編程類(lèi)似于“搭積木”,將一個(gè)個(gè)組件(Widget)放到窗口中。如下是windows中的畫(huà)圖軟件,就是一個(gè)典型的GUI程序:上面的各種按鈕、菜單、編輯區(qū)域等都是一個(gè)個(gè)組件,它們都放置到窗口中,并通過(guò)增加“對(duì)事件的處理”成為一個(gè)完整的程序。常用的GUItkinter(Tkinterface)是Python的標(biāo)準(zhǔn)GUI庫(kù),支持跨平臺(tái)的GUI程序開(kāi)發(fā)。tkinter適合小型的GUI程序編寫(xiě),也特別適合初學(xué)者學(xué)習(xí)GUI編程。本書(shū)以tkinter為進(jìn)功能強(qiáng)于tkinter,整體設(shè)計(jì)框架類(lèi)似于MFC(FoundationClasses微軟基礎(chǔ)類(lèi)庫(kù))。QtGUIGUI程序開(kāi)發(fā)PyQT是Qt工具包標(biāo)準(zhǔn)的Python實(shí)現(xiàn)。我們也可以使用QtDesginer界面設(shè)計(jì)器快速開(kāi)發(fā)GUI應(yīng)用程序。tkinter提供的文檔:tkinter:或者:(相對(duì)規(guī)整,適合由于都是英文,我們?cè)谑谡n過(guò)程中盡量不涉及。英文好的同學(xué)可以自行查找相關(guān)說(shuō)明。我們也希望英文較差的同學(xué)也能盡量多的學(xué)習(xí)英文,對(duì)于后續(xù)技術(shù)的理解有較大的幫助。大家也可以去“尚學(xué)堂”官網(wǎng)我們提供的常見(jiàn)0個(gè)開(kāi)發(fā)詞匯。GUI編程的步驟和第一個(gè)GUI程基于tkinter模塊創(chuàng)建GUI程序包含如下4個(gè)步驟創(chuàng)建應(yīng)用程序主窗口對(duì)象(也稱(chēng):根窗口fromtkinterimportrootfromtkinterimportroot=btn01=(Buttonbtn01=btn01[btn01["text"]=通過(guò)幾何布局管理器,管理組件的大小和事件處通過(guò)綁定事件處理程序,響應(yīng)用戶(hù)操作所觸發(fā)的事 messagebox.showinfo("Message","送 messagebox.showinfo("Message","送你一朵玫瑰花,你愛(ài)上我print("送你99朵玫瑰btn01.bind("<Button-tkinter模塊,創(chuàng)建GUI應(yīng)用程序,并實(shí)現(xiàn)點(diǎn)fromfromtkinterimportfromtkinterimportroot=btn01btn01= tkinter主窗‘h+x表示距屏幕左邊的距離;-x表示距屏幕右邊的距離;+y表示距屏幕上邊的距離;-y表示距屏幕下邊的距離。fromtkinterimportroot=fromtkinterimportroot= 執(zhí)行結(jié)果GUI組件還能在里面再放置其他組件,我們稱(chēng)為“容器”。Tkinter的GUI組件關(guān)系圖如下: tkinter中GUI組件的繼承關(guān)系圖Mis和Tkinter的GUIobjectis它是所有組件的根父類(lèi)Wm它主要提供了一些與窗口管理器通信的功能函數(shù)接使用Tk。ck、Place、aseieigWidget是所有組件類(lèi)的父類(lèi)。Widget一共有四個(gè)父類(lèi):BaseWidget、Pack、GridPlace。意味著,所 GUI組件同時(shí)具備這四個(gè)父類(lèi)的屬性和方法【注】想觀察類(lèi)的層次結(jié)構(gòu)可以在類(lèi)定義處的類(lèi)名上單擊右鍵,選擇Diagram-->showTkinter 容器類(lèi),可用于為其他組件提供單獨(dú)的容器;Toplevel用于裝載其它GUI組件類(lèi)似 ,但可以顯示多行文本;后來(lái)當(dāng)Label也能顯GUI應(yīng)用程序類(lèi)的經(jīng)典寫(xiě)本節(jié)程序也是GUI應(yīng)用程序編寫(xiě)的一個(gè)主要結(jié)構(gòu),采用通過(guò)類(lèi)Application組織整個(gè)GUI程序,類(lèi)繼承了 及通過(guò)繼承擁有了父類(lèi)的特性。通過(guò)構(gòu)造函t ()初始化窗口中的對(duì)象,通過(guò)cetedget()Frame框架是一個(gè)tkinter組件,表示一個(gè)矩形的區(qū)域。GUI"""測(cè)試一個(gè)經(jīng)典的GUI程序的寫(xiě)法,使用面向?qū)romtkinterimportfromtkinterimportclass"""一個(gè)經(jīng)典的GUI程序 init(self,super().init(master) self.master=masterdef"""self.btn01=Button(self)self.btn01["text"]="點(diǎn)擊送花"self.btn01["commandself.songhua#創(chuàng)建一個(gè)退self.btnQuitButton(selftext="退出def =='main':root=Tk()app=Application(master=root)簡(jiǎn)單組LabelLabel()主要用于顯示文本信息,也可以顯示圖像Label()有這樣一些常見(jiàn)屬性大小為單位(一個(gè)漢字寬度占2個(gè)字符位置,高度和英文字符一樣);如果顯示是圖像,則以像素為單位。默認(rèn)值是根據(jù)具體顯示的內(nèi)容動(dòng)態(tài)調(diào)整。指定字體和字體大小,如:font=顯示在Label上的圖像,目前tkinter只支持gif格式fgfg(foreground):前景色、bg(background):背景針對(duì)多行文字的對(duì)齊,可設(shè)置justify屬性,可選值"left","center"or"right"【示例】Label()的用"""測(cè)試Label組件的基本用法,使用面向?qū)ο蟮膄romtkinterimport*classApplication(Frame): init(self,super().init(master) self.master=masterdef"""self.label01Label(self,text="百戰(zhàn)程序員bg="black",fg="white")self.label02=Label(self,text=" ",",#顯示圖globalphoto #把photo photo=PhotoImage(file="imgs/logo.gif")self.label03=Label(self,image=photo)self.label04=Label(self,text=" 員\n老高好帥,就是做飯不行",ifname=='main':root=Tk()app=Application(master=root)運(yùn)行結(jié)果如下Options選項(xiàng)詳fredfred=Button(self,fg="red",fred["bg"]=創(chuàng)建對(duì)象后,使用config()方fred.config(fg="red",fred.config(fg="red",如何查看組件的Options可以通過(guò)打印config()方法的返回值,查看Options選通過(guò)在IDE我們可以看到如下的代classclassdefinit(self,master=None,cnf={},WIDGET-Widget.init(self,master,'button',cnf,含指定組件處于激活狀態(tài)時(shí)的背景指定組件處于激活狀態(tài)時(shí)的前景W、NWCENTER。比如NW(NorthWest)指定將信息顯示在組件的左指定組件正常顯示時(shí)的背指定在組件上顯示該選項(xiàng)指定的位圖,該選項(xiàng)值可以接的的位圖。位圖的顯示方式受anchor、justify選項(xiàng)的影響。如果同時(shí)指定了bitmaptextbitmap覆蓋文本;如果同時(shí)指定了bitmapimageimage覆蓋指定光標(biāo)在組件上的樣式。該值可以是Tk_GetCursors指定按組件關(guān)聯(lián)令方法,該方法通常在鼠標(biāo)離開(kāi)組件時(shí)被觸發(fā)調(diào)指定組件處于禁用狀態(tài)時(shí)的前景指定組件上顯示的文本字指定組件正常顯示時(shí)的前指定組件在高亮狀態(tài)下的背景色指定組件在高亮狀態(tài)下的前景色指定組件在高亮狀態(tài)下的周?chē)叫螀^(qū)域的寬度,該值可以是指定組件的高度,以font選項(xiàng)指定的字體的字符高度為單位,至少為指定組件中顯示的圖像,如果設(shè)置了imagetext、中對(duì)齊)或RIGHT(右對(duì)齊)這三個(gè)值Tk_GctPixelsTk_GctPixels3DRAISED、SUNKEN、FLAT比如RAISED表示組件內(nèi)部相對(duì)于外部凸起指定組件在選中狀態(tài)下的背景色指定組在選中狀態(tài)下的前指定組件的當(dāng)前狀態(tài)。該選項(xiàng)支持NOMAL(正常)、DISAL(禁用)這兩個(gè)值1表示接收焦點(diǎn);設(shè)為0表示不接收焦點(diǎn)指定組件上顯示的文本,文本顯示格式由組件本身、anchor及justify選示格式由組件本身、anchor及justify選項(xiàng)決定指定為組件文本的第幾個(gè)字符添加下畫(huà)線,該選項(xiàng)就相當(dāng)于為組件綁定了快捷鍵font對(duì)于能支持字符換行的組件,該選項(xiàng)指定每行顯示的最大字符數(shù),超過(guò)數(shù)量的字符將會(huì)轉(zhuǎn)到下行通常用于將組件的水平滾動(dòng)改變(包括內(nèi)容滾動(dòng)或?qū)挾劝l(fā)生改變)與水平滾動(dòng)條的et方法關(guān)聯(lián),從而讓組件的水平滾動(dòng)改變傳遞到水平滾動(dòng)條通常用于將組件的垂直滾動(dòng)改變(包括內(nèi)容滾動(dòng)或高度發(fā)生改變)與垂直滾動(dòng)條的et方法關(guān)聯(lián),從而讓組件的垂直滾動(dòng)改變傳遞到垂直滾動(dòng)條Butt(按鈕用來(lái)執(zhí)行用戶(hù)的單擊操作。Buttn可以包含文本,也可以包含圖像。按鈕被單擊后會(huì)自動(dòng)調(diào)用對(duì)應(yīng)事件綁定的方法。"""測(cè)試Button組件的基本用法,使用面向?qū)ο蟮?""測(cè)試Button組件的基本用法,使用面向?qū)ο蟮膄romtkinterimportfromtkinterimportmessageboxclassApplication(Frame):definit(self,super().init(master) self.master=masterdef"""self.btn01Button(root,text="登錄globalphoto=PhotoImage(file="imgs/start.gif")self.btn02=Button(root,self.btn02.config(state="disabled")#defifname=='main':root=Tk()app=Application(master=root)運(yùn)行結(jié)果Entry單行文本Entry用來(lái)接收一行字符串的控件。如果用戶(hù)輸入的文字長(zhǎng)度長(zhǎng)于Entry控件的寬度時(shí),文字會(huì)自后滾動(dòng)。如果想輸入多行文本,需要使用Text控件。"""測(cè)試Entry組件的基本用法,使用面向?qū)ο蟮?""測(cè)試Entry組件的基本用法,使用面向?qū)ο蟮膄romtkinterimportfromtkinterimportclass init(self,super().init(master) self.master=masterdef"""創(chuàng)建登錄界面self.label01Label(self,text="用戶(hù)名#StringVar變量綁定#StringVar變量的值發(fā)生變化,組件內(nèi)容也變化;#組件內(nèi)容發(fā)生變化,StringVar變量的值也發(fā)生v1=self.entry01=Entry(self,textvariable=v1)#創(chuàng) self.label02=Label(self,text=" v2=deflogin(self):username=self.entry01.get()pwd=self.entry02.get() ifusername=="gaoqi"and ifname=='main':root=Tk()app=Application(master=root)界面效果Text多行文本Text(多行文本框)的主要用于顯示多行文本,還可以顯示網(wǎng)頁(yè),,ML面,甚至CSS件等。因此,也常被當(dāng)做簡(jiǎn)單的文本處理器、文本編輯器或者網(wǎng)頁(yè)瀏覽器來(lái)使用。比如IDEText組件構(gòu)成的。"""測(cè)試Text多行文本框組件的基本用法,使用面fromtkinterimport*importwebbrowserclass"""測(cè)試Text多行文本框組件的基本用法,使用面fromtkinterimport*importwebbrowserclass init(self,super().init(master) self.master=defself.w1=Text(root,width=40,#寬度20(10)self.w1.insert(1.0,"粒粒皆辛苦def#INSERT索引表示在光標(biāo)處插入self.w1.insert(INSERT,Gaoqi#END索引號(hào)表示在最后插入self.w1.insert(END,'[sxt]')self.w1.insert(1.8,def :行號(hào)以1開(kāi)始列號(hào)以0,def#globalself.photo=PhotoImage(file="imgs/logo.gif")self.w1.image_create(END,image=self.photo)defb1Button(self.w1,text='愛(ài)尚學(xué)堂#在text創(chuàng)建組 deftestTag(self):尚學(xué)堂\n百戰(zhàn)程序員\n self.w1.tag_add("good",1.0,1.9)self.w1.tag_config("good",background="yellow",self.w1.tag_add("baidu",4.0,4.2)self.w1.tag_config("baidu",underline=True)self.w1.tag_bind("baidu","<Button-1>",defdefifname=='main':root=Tk()app=Application(master=root)運(yùn)行結(jié)果·利用TagsTagsText組件中內(nèi)容的樣式和功能。你可以修改文本的字體、尺寸和顏色。另外,Tags還允許你【示例】利用Tagfromtkinterimportimportroot=w1w1 w1.insert(INSERT,"goodgoodstudy,dayday尚學(xué)堂defw1.tag_bind("baidu","<Button-運(yùn)行結(jié)果點(diǎn)擊“”后,系統(tǒng)默認(rèn)瀏覽器打開(kāi)頁(yè)面Radiobutton 單選 控件用于選擇同一組單選按鈕中的一個(gè) 可以顯示文本,也可以顯示圖像"""測(cè)試Radiobutton組件的基本用法,使用"""測(cè)試Radiobutton組件的基本用法,使用面向fromtkinterimportfromtkinterimportclassdefdefinit(self,super().init(master) self.master=defcreateWidget(self):self.v=StringVar();self.r1=Radiobutton(self,text="",self.r2Radiobutton(selftext="女性"Button(self,text="確定",defconfirm(self):別ifname=='main':root=Tk()app=運(yùn)行結(jié)果Checkbutton Checkbutton控件用于選擇多個(gè)按鈕的情況。Checkbutton"""測(cè)試Checkbutton"""測(cè)試Checkbutton組件的基本用法,使用面向fromtkinterimportfromtkinterimportmessageboxclassApplication(Frame): init(self,super().init(master) self.master=masterdefcreateWidget(self):self.codeHobby=IntVar(); Hobby=())self.c1Checkbutton(selftext="敲代碼onvalue=1,self.c2=Checkbutton(self,text=" onvalueonvalue=1,Button(self,text="確定",defifHobby.get()== ifself.codeHobby.get()==1:送給他尚學(xué)堂 充饑ifname=='main':root=Tk()app=Application(master=root)運(yùn)行結(jié)果canvas畫(huà)組件等。本節(jié)我們簡(jiǎn)單介紹canvas的使用,更加詳細(xì)和深"""測(cè)試Canvas"""測(cè)試Canvas組件的基本用法,使用面向?qū)ο蟮膄romtkinterimportfromtkinterimportmessageboximportrandomclass init(self,super().init(master) self.master=masterdefself.canvas=Canvas(self,width=300,height=200,#畫(huà)一#畫(huà)一個(gè)rectself.canvas.create_rectangle(5050100,100)#畫(huà)一.坐標(biāo)兩雙。為橢圓的邊界矩形左上角和底部右下角oval=self.canvas.create_oval(50,50,100,100)globalphoto=Button(self,text="畫(huà)10個(gè)矩形",defforiinrange(0,10):x1=y1=x2=x1+y2=y1+self.canvas.create_rectangle(x1,y1,x2,y2) =='main':root=Tk()app=Application(master=root)運(yùn)行結(jié)果一個(gè)GUI應(yīng)用程序必然有大量的組件,這些組件如何排織、管理在父組件中子組件的布局方式。tkinter提供了三種管grid布局管理grid行和列的單元格來(lái)確定,并且可以跨行和跨列,從而實(shí)現(xiàn)復(fù)雜的布局。grid()方法提供ipadx,設(shè)置子組件之間的間隔x方向或者y方向,padx,與之并列的組件之間的間隔,x方向或者西北中以及4個(gè)角“n”,“s”,“w”,“e”, 【示例】 布局用法-登錄界面設(shè)"""測(cè)試Grid布局管理器的基本用法,使用面向?qū)romtkinterimportfromtkinterimportmessageboximportrandomclass init(self,super().init(master) self.master=masterdef"""通過(guò)grid布局實(shí)現(xiàn)登錄界"""self.label01Label(self,text="用戶(hù)名")self.entry01=Entry(self) Label(self,text=" ").grid(row=1,column=0)Entry(self,show="*").grid(row=1,column=1)Button(self,text="登錄").grid(row=2,column=1,Button(self,text="取消").grid(row=2,column=2, =='main':root=Tk()app=Application(master=root)運(yùn)行結(jié)果【示例】通過(guò) 布局-實(shí)現(xiàn)計(jì)算器軟件界面面,相應(yīng)的功能暫不需要實(shí)現(xiàn)。74列的表格布局,然后""""""計(jì)算器軟件界面的設(shè)計(jì)fromtkinterimportfromtkinterimportmessageboximportrandomclassdefinit(self,super().init(master) self.master=masterdef"""通過(guò)grid布局實(shí)現(xiàn)計(jì)算器的界面 ext=(("MC","M+","M- forrindex,rinforcindex,cinenumerate(r):ifc=="=":elifc==0:elifc==".":ifname=='main':root=Tk()app=Application(master=root)pack布局管理pck按照組件的創(chuàng)建順序?qū)⒆咏M件添加到父組件中,按照垂直或者水平的方向自然排布。如果不指定任何選項(xiàng),默認(rèn)在父組件中自頂向下垂直添加組件。pack是代碼量最少,最簡(jiǎn)單的一種,可以用于快速界面pack()方法提供的選名描取值范當(dāng)值為“yes”時(shí),side選項(xiàng)無(wú)效。組件顯示在父配件中心位置;若選項(xiàng)為”both”,則填充父組件的剩余“yes”,自然數(shù),”no”,0(默認(rèn)值或填充x(y)方向上的空間,當(dāng)屬性side=”top”或”bottom”時(shí),填充方向;當(dāng)屬性side=”left”或”right”時(shí),填充”y”方向;當(dāng)expand選“x”,“y”,(默認(rèn)值為設(shè)置子組件之間的間隔,x方向或者y方向,默認(rèn)單位為像非負(fù)浮點(diǎn)數(shù),默認(rèn)非負(fù)浮點(diǎn)數(shù),默認(rèn)定義??吭诟附M件的哪一邊(默認(rèn)為將本組件于所選組建對(duì)象之前pack,類(lèi)似于先創(chuàng)建本組件再創(chuàng)建選組已經(jīng)pack后的組件對(duì)將本組件于所選組建對(duì)象之后pack,類(lèi)似于先創(chuàng)建選定組件再本組已經(jīng)pack后的組件對(duì)將本組件作為所選組建對(duì)象的子組件,類(lèi)似于指定本組件的為選已經(jīng)pack后的組件對(duì)對(duì)齊方式,左對(duì)齊”w”,右對(duì)齊”e”,頂對(duì)齊”n”,底對(duì)齊“n”,“s”,“w”,“e”,“nw”,“se”,“ne”,“center”(默認(rèn)【老鳥(niǎo)建議】如上列出了pack布局所有的屬性,但是不需平排布,如果需要復(fù)雜的布局可以使用grid或place?!臼纠縫ack布局用法,制作鋼琴按鍵fromtkinter root=f2= fortxtinforforiinButton(f2,width=5,height=10,bg="black"ifi%2==0elseplace布局管理place布局管理器可以通過(guò)坐標(biāo)精確控制組件的位置,適用place()方法的選relx是相對(duì)父組件的位置。0是最左邊,0.5是正中間,1是最右邊rely是相對(duì)父組件的位置。0是最上邊,0.5是正中間,1是最下邊與relx、rely取值類(lèi)似,但是相對(duì)于“n”,“s”,“w”,“e”,“nw”,“sw”,“se”,“ne”,“center”(默認(rèn)fromtkinterimportroot=root.title(fromtkinterimportroot=root.title("布局管理f1=Button(root,text="尚學(xué)運(yùn)行結(jié)果【示例】place布局管理-牌游戲牌游戲的界面設(shè)計(jì)fromtkinterimportclassdefinit(self,super().init(master) self.master=def#self.photo=牌位置控制#self.puke1=Label(self.master,image=self.photo)#self.puke1.place(x=10,y=50)self.photos=self.pukes=[Label(self.master,image=self.photos[i])foriinforiinrange(10):#為所有的Label)defchupai(self,event):ifevent.widget.winfo_y()==50:ifname=='main':root=Tk()app=Application(master=root)一個(gè)GUI應(yīng)用整個(gè)生命周期都處在一個(gè)消息循環(huán)(eventloop)中。它等待事件的發(fā)生,并作出相應(yīng)的處理。Tkinter提供了用以處理相關(guān)事件的機(jī)制.處理函數(shù)可被綁widget.bind(event,如果相關(guān)事件發(fā)生handler函數(shù)會(huì)被觸發(fā),事件對(duì)象event會(huì)傳遞給handler函數(shù)鼠標(biāo)和鍵盤(pán)事代說(shuō)鼠標(biāo)左鍵按下 鼠標(biāo)左鍵釋<B1-鼠標(biāo)指針進(jìn)入某一組件區(qū)鼠標(biāo)指針離開(kāi)某一組件區(qū)<KeyPress-a<KeyPress-A鍵(同時(shí)按下alt和a;alt可用ctrlshiftCTRLV鍵被同時(shí)按下,Vevent對(duì)象常用屬名說(shuō)按鍵字符,僅對(duì)鍵盤(pán)事按鍵編碼,僅對(duì)鍵盤(pán)事鍵的char:鍵的 鍵的鍵的 鍵的 鍵的鼠標(biāo)按鍵,僅對(duì)鼠標(biāo)事所觸發(fā)的事件類(lèi)引起事件的組組件改變后的大小,僅Configure有鼠標(biāo)當(dāng)前位置,相對(duì)于鼠標(biāo)當(dāng)前位置,相對(duì)于整個(gè)屏#coding=utf-#測(cè)試鍵盤(pán)fromtkinterimport#coding=utf-#測(cè)試鍵盤(pán)fromtkinterimportroot=c1=Canvas(root,width=200,height=200,bg="green")defdeftestDrag(event):defdefpress_a_test(event):print("pressa")defrelease_a_test(event):print("releasea")lambda表達(dá)式詳lambda表達(dá)式定義的是一個(gè)函數(shù),只適合簡(jiǎn)單輸入?yún)ambda定義的函數(shù)也有輸入、也有輸出,只是沒(méi)有名lambda參數(shù)值列表即為輸表達(dá)式計(jì)算的結(jié)構(gòu)即為輸add3argslambdax,y,z:x+y+z上面的lambdadefreturn 表達(dá)式的參數(shù)值列表可以為如下lambda說(shuō)xy函數(shù)沒(méi)有輸入?yún)?shù),輸出 函數(shù)沒(méi)有輸入?yún)?shù),輸出 aaa(3,4)的果 輸入是任意個(gè)數(shù)的參數(shù),輸出是它們的**kwargs:輸入是任意鍵值對(duì)參數(shù),輸出 我們?cè)谄綍r(shí)使用時(shí),注 只是一個(gè)函數(shù)(沒(méi)名字的函數(shù)),功能不強(qiáng),不要過(guò)使用lambda表達(dá)式實(shí)現(xiàn)傳#coding=utf-#測(cè)試#coding=utf-#測(cè)試command屬性綁定事件,測(cè)試lambda表達(dá)fromtkinterimportroot=defdefmouseTest2(a,b):Button(root,text="測(cè)試command1",Button(root,text="測(cè)試command2",command=lambdamouseTest2("gaoqi",·組件對(duì)象的綁定通過(guò)command屬性綁定(適合簡(jiǎn)單不需獲取event對(duì)象Button(root,text=”登錄通過(guò)bind()方法綁定(適合需要獲取 對(duì)象c1=Canvas();c1.bind(“<Button-·組件類(lèi)的綁定調(diào)用對(duì)象的bind_class函數(shù),將該組件類(lèi)所有的組件綁定事件比如:btn01.bind_class(“Button”,”<Button-#coding=utf-#多種事from#coding=utf-#多種事fromtkinterimportroot=defdefmouseTest2(a,b):print("a={0},b={1}".format(a,b))defb1Button(root,text="bind()綁定")#bind方式綁#command屬性直接b2Button(roottext="command=lambda:mouseTest2("gaoqi","xixi"))#給所有Button按鈕都綁定右<Button-b1.bind_class("Button","<Button-2>",其他組我們面介紹了最常用的幾個(gè)組件,接下來(lái)我們介紹其他 選擇 (選擇項(xiàng))用來(lái)做多選一,選中的在頂部顯示。 fromtkinter root=Tk();root.geometry("200x100") fromtkinter root=Tk();root.geometry("200x100")v=StringVar(root);v.set("百戰(zhàn)程序om (root,v,"尚學(xué)堂","百戰(zhàn)程序員","卓越班[保18 值運(yùn)行結(jié)果Scale移動(dòng)Scale(移動(dòng)滑塊)用于在指定的數(shù)值區(qū)間,通過(guò)滑塊的移選擇值 fromtkinter root fromtkinter root=defprint("滑塊的值:",value)newFont"宋體",value)s1=a=Label(root,a=Label(root,text="百戰(zhàn)程序員運(yùn)行結(jié)果顏色選擇顏色選擇框可以幫助我們?cè)O(shè)置背景色、前景色、畫(huà)筆顏色、字體顏色等等。fromtkinter fromtkinter.colorchooserimport*root=Tk();root.geometry("400x150")defs1=askcolor(color="red",title="選擇背景色 運(yùn)行結(jié)果文件文件框幫助我們實(shí)現(xiàn)可視化的操作、操作文件。最后,將文件、的信息傳入到程序中。文件框包含如函數(shù)框說(shuō)文件返回打開(kāi)的文件返回打開(kāi)的多個(gè)文件名列返回打開(kāi)的文件對(duì)象返回打開(kāi)的文件對(duì)象的列)框返 保存返回保存的文件對(duì)象返回保存的文件參數(shù)說(shuō)舉默認(rèn)后文件顯示過(guò)濾初初始文父窗口,默認(rèn)口窗口標(biāo)fromfromtkinter fromtkinter.filedialogimportroot=deffaskopenfilename(title=show=運(yùn)行結(jié)果fromtkinterfromtkinter fromtkinter.filedialogimportroot=defwithaskopenfile(title="上傳文initialdir="d:",filetypes=[("文本",".txt")])asshow=簡(jiǎn)單輸入simpledialog(簡(jiǎn)單框)包含如下常用函數(shù)函數(shù)說(shuō)輸入并返回浮點(diǎn)輸入并返回整輸入并返回字符kw為各種選項(xiàng):initialvalue(初始值minvalue(最小值、 fromtkinter fromtkinter fromtkinter.simpledialogimportroot=show=aaskinteger(title= 自運(yùn)行結(jié)果自通用消息點(diǎn)擊確定、取消。如下列出了messagebox的常見(jiàn)函數(shù):函數(shù)說(shuō)例話Yes/No問(wèn)題框問(wèn)題錯(cuò)誤消息對(duì)消息警告消息 fromtkinter fromtkinter from
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 埃萊爾-當(dāng)洛綜合征的臨床護(hù)理
- JJF(陜) 111-2024 超聲流量計(jì)在線校準(zhǔn)規(guī)范
- 《教綜合布線技術(shù)》課件
- 《保險(xiǎn)家庭財(cái)產(chǎn)保險(xiǎn)》課件
- 風(fēng)險(xiǎn)識(shí)別與評(píng)估技巧培訓(xùn)
- 培養(yǎng)創(chuàng)新思維的方法計(jì)劃
- 深入分析行業(yè)趨勢(shì)制定行動(dòng)方案計(jì)劃
- 2024-2025學(xué)年九年級(jí)數(shù)學(xué)人教版下冊(cè)專(zhuān)題整合復(fù)習(xí)卷第28章 銳角三角函數(shù)整章測(cè)試(含答案)
- 杠桿基金合同三篇
- 拖拉機(jī)及農(nóng)林牧漁用掛車(chē)相關(guān)行業(yè)投資方案
- 鋁壓鑄件企業(yè)生產(chǎn)安全事故風(fēng)險(xiǎn)評(píng)估報(bào)告(根據(jù)新應(yīng)急預(yù)案編制導(dǎo)則編制)
- 生態(tài)文明-撐起美麗中國(guó)夢(mèng)學(xué)習(xí)通章節(jié)答案期末考試題庫(kù)2023年
- 過(guò)敏性休克的搶救ppt
- 部編版五年級(jí)語(yǔ)文下冊(cè)全套一課一練練習(xí)(精編含答案)-2020042809395412
- 仿生機(jī)械蝎子設(shè)計(jì)說(shuō)明書(shū)
- 1-12年級(jí)3500個(gè)核心單詞總結(jié)
- 公司采購(gòu)工程師職位說(shuō)明書(shū)
- 免疫治療免疫相關(guān)不良反應(yīng)的處理
- 優(yōu)秀團(tuán)隊(duì)申報(bào)材料【優(yōu)秀5篇】
- 大學(xué)與青年發(fā)展智慧樹(shù)知到答案章節(jié)測(cè)試2023年華僑大學(xué)
- 深圳市2021-2022學(xué)年初三年級(jí)中考適應(yīng)性考試試題及答案
評(píng)論
0/150
提交評(píng)論