版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
(2007-10-04熟悉pythonpython的( 系列的特點(diǎn)他不是一本經(jīng)過文字潤色的文章,全部是代碼,作者在必要的時(shí)候使用注釋來解釋以組件為章節(jié)進(jìn)行介紹,每個(gè)組件又分為不同的例子,各個(gè)例子可以單獨(dú)使用,分別使用序號(hào)標(biāo)各個(gè)例子的使用“注釋基本上包含了TKinter的所有的控件根據(jù)每個(gè)控件的使用方法選擇性的介紹了其屬性和方法,沒有全部介紹,全部的介紹查看Tkinter的官方參考 Tkinter參考書籍 參考為最后祝各位TkPythonPython"copy"與"reference"(2007-09-22每個(gè)對(duì)象對(duì)應(yīng)一個(gè)實(shí)體,一個(gè)實(shí)體可以對(duì)應(yīng)多個(gè)別名,pythonC++語言的參數(shù)和引用的之分,python(aliase)。對(duì)于簡單(或者稱為基本)和不可修改類型,python“copy”別名的方式;對(duì)于復(fù)合和可修改類型,pythonreference”別名x=y=xprintx,y#10,10y=printx,y#10,40x10,y40y=x是對(duì)象 ,x與y分別使用不同的對(duì)象實(shí)體,故y只改變后,x值還為10使用“referencePointPointclassPoint:a=a.x=Pointb=print#使用別名 b.x=printa.x,b.xbaPointb.x=40時(shí),bx40xyPythonPython面向?qū)ο蟪?(2007-09-23classPoint:Point屬性的屬性xyclass#定義xyx=y=實(shí)例(instance),xsetXxgetX。class#定義xyx=y=defsetX(self,x_):self.x=x_defgetX(self):returnself.xdefsetY(self,y_):self.y=y_def
returndefsetXY(self,x_,y_):注意:這個(gè)類方法如何類屬性,使用self.x,x。pythonC++不同,類數(shù)中創(chuàng)建了一個(gè)變量x,并將其值設(shè)置為_x。同樣對(duì)于類方法之間互相selfdefout_setX(self,x_):self.x=hout_setXclassPoint:x=y=setX= Pointpt=#設(shè)置坐標(biāo)xpt.x=#獲取坐標(biāo)xprint defprint'f'deff(x):printTypeError:f()takesexactly1argument(0ffdefprint'f'deff(x):print x=10##x=20 C++(constrctor)pythoninit,如下代碼,在創(chuàng)建對(duì)象時(shí)將類屬性初始化classx=y=
init(self,x_,y_):self.x=x_self.y=(x,y)設(shè)置為(20,20)pt=Point(20,20)print類的成員(屬性和方法),pythonpublic,即屬性與方法可以被直接,這一點(diǎn)與
classx=def self.x=x_defself.setX(x_)defgetX(self): returnself.xpt=Point()#直接 x#pt.xxAttributeError:Pointinstancehasnoattributex' #pt.setX(pythonprintpt.getX()printpt.getX()classPoint:passzPoint.z=30#創(chuàng)建類對(duì)象pt=Point()pp=Point() print z,ppptzprintpt.z,pp.zclassPoint:passpt=Point()pp=pt.z= #print#AttributeError:classPointhasnoattribute'z'printpt.z #printpp.z#AttributeError:PointinstancehasnoattributeclassclassDerivedClassName(BaseClassName):pass classPoint:x=y=defsetX(self,x_):self.x=x_defgetX(self):returnself.xclassCircle(Point):r=5pt=cl= printcl.x,cl.y printcl.x,cl.y Circle屬性'''classPoint:x=y=defsetX(self,x_):self.x=x_defgetX(self):returnself.xclassCircle(Point):x=40y=r=pt=cl= printcl.x,cl.y#40,50 父類Point屬性'''classPoint:x=y=defsetX(self,x_):self.x=x_defgetX(self):returnself.xclassCircle(Point):x=40y=r= def#x,y已經(jīng)被Circle重載,顯示使用父 父類屬printPoint.x,Point.y#創(chuàng)建子類對(duì)象cl= #10,20C++語言中的子類會(huì)自動(dòng)調(diào)用父類的構(gòu)造函數(shù),python中的initinit,如果要調(diào)用必須顯示的調(diào)用父類的 classPoint:
init(self):print'Point'class
initinitPoint.init(self)print'Circle'cl=Circle()#Point#CircleclassGraphic:draw=Graphicdrawclassx=y=draw
init(self):self.draw=self.draw
printGraphicdrawclassCircle(Point):r=draw
init(self):self.draw=self.draw
printgp=Graphic()pt=Point()clcl=Circle()#TypeError:'NoneType'objectisnotcallable#調(diào)用Point的drawclassclassCircle(Point):passclassCylinder(Circle):passclasspt=Point()cl=Circle()cy=Cylinder()definit(self): #TkinterLabeltext fromTkinterimport*Tkroot=IDE。label=Label(root,text=' oTkinter')label,必須含有此語句#2.master,即這個(gè)控件屬于哪一個(gè)#3.GM(geometrymanager)有一個(gè)控件產(chǎn)生了 fromTkinterimport*root=Tk() oTkinter')fromTkinterimport*Tkroot=IDE。labelLabel(root,bitmap'error')errorbitmpa'error'替換。Label(root,image bm=PhotoImage(file='c:\\python.gif') label=Label(root,image=bm) label.bmbm#TclError:imagepyimageXXdoesn'texistbitmap bm=BitmapImage(file='c:\\python2.bmp') label=Label(root,bitmap=bm) label.bm= #TclError:formaterrorinbitmapdata雖然二者均沒有起作用,還是要說明一下,bitmapimagebg:container)fromTkinterimport*root=Tk()Label(root,fg='red',bg='blue',text=' oIamTkinter').pack()Label(root,fg='red',bg='#FF00FF',text=' oIamTkinter').pack()(Windows 使用label=Label(root,fg='red',bg='#FF00FF',text= oIam fromTkinterimport*root=Tk()LabelLabel(root,text='red',bg='red').pack()Label(root,text='blue',bg='blue').pack()Label(root,textyellow',bg'yellow').pack()LabelwidthheightLabel(root,bg='red',width=10,height=3).pack()Label(root,bg'blue',width10,heightLabel(root,bg='yellow',width=10,height=3).pack() 指定文本(text)與圖像(bitmap/image)是如何在LabelNone,image/bitmap(text)將被覆蓋,只顯示圖像了??梢允褂玫闹担? label=Label(root,text='Error',compound='left',bitmap='error')fromTkinterimport*root=Tk()Label(root,textbotton',compound'bottom',bitmaperror').pack()Label(root,texttop',compoundtop',bitmap'error').pack()Label(root,textright',compound'right',bitmap'error').pack()Label(root,textleft',compound'left',bitmap'error').pack()Label(root,text='center',compound='center',bitmap=在Tk004中,使用width和heigth來指定控件的大小,如果指定的大小 Label(root,bg='eto ',width10,height3).pack()
fromTkinterimport*root=Tk()Label(root,text= e ',bg='yellow',width=3,wraplength80,justifyleft').pack()Label(root,text=' eto ',bg='red',width=40,height=3,wraplength=80,anchor='w').pack()Label(root,text= e ',bg='blue',width==3,wraplength=80,anchor='e').pack() #Button'''1.ButtonfromTkinterimport* print' obutton'root=Button(root,text=' oButton',command= obutton',以上為Button使用方法, fromTkinterimport*root=Tk()#下面的relief=FLAT設(shè)置,就是一個(gè)Label了!Button(root,text=' obutton',relief=FLAT).pack()fromTkinterimport*root=Tk()#flat,groove,raised,ridge,solid,orsunkenButton(root,text=' obutton',relief=FLAT).pack()Button(root,text=' obutton',relief=GROOVE).pack()Button(root,text=' obutton',relief=RAISED).pack()Button(root,text=' obutton',relief=RIDGE).pack()Button(root,text=' obutton',relief=SOLID).pack()Button(root,text= oimage:gifimgPhotoImage(root,filebitmap:X11bitmap,WindowsBitmapWindowsBitmapxbm.linuxX11bitmapbitmapbp=BitmapImage(file="c:\\python2.xbm")Button(root,bitmap=bp).pack()BITMAP="""#defineim_width#defineim_height32staticcharim_bits[]=bmp=BitmapImage(data=BITMAP)Button(root,bitmap=bmp)'''3.LabelButtoncompound'''fromTkinterimport*root=Button(root,text='botton',compound='bottom',bitmap='error').pack()Button(root,text='top',compound='top',bitmap='error').pack()Button(root,text='right',compound='right',bitmap='error').pack()Button(root,text='left',compound='left',bitmap='error').pack()Button(root,text='center',compound='center',bitmap='error').pack()fromTkinterimportdefprint'button1clicked'defcb2(event):print'button2clicked'defcb3():print'button3clicked'root=Tk()b1=Button(root,text='Button1',command=cb1)b2=Button(root,text='Button2')b3=Button(root,text='Button3',command=cb3) 響 fromTkinterimportdefprint'event.time=',event.timeprint'event.type=',event.typeprint'event.WidgetId=',event.widgetprint'event.KeySymbol=root=b=Button(root,text=犯了個(gè)錯(cuò)誤,將<Return>寫成<Enter>了,結(jié)果是:當(dāng)鼠標(biāo)進(jìn)入Button區(qū)域后, # fromTkinterimport*root=Tk()b1=Button(root,text='30X1',width=30,height=2)b2=Button(root,text='30X2')b2['width']=30b2['height']=3b3=Button(root,text='30X3')b3.configure(width=30,height=3)#上述的三種方法同樣也適合其他的控件'''6.ButtonfromTkinterimport*root=Tk()forain['n','s','e','w','ne','nw','se','sw']:text='anchor',anchor=a,width=30,height=#Button(root,text='anchor',width=30,height#Button(root,text='anchor',anchor='center',width=30,height=4).pack()#Button(root,text='anchor',anchor='n',width=30,height=4).pack()#Button(root,text='anchor',anchor='s',width=30,height=4).pack()#Button(root,text='anchor',anchor='e',width=30,height=4).pack()#Button(root,text='anchor',anchor='w',width=30,height=4).pack()#Button(root,text='anchor',anchor='ne',width=30,height=4).pack()#Button(root,text='anchor',anchor='nw',width=30,height=4).pack()#Button(root,text='anchor',anchor='se',width=30,height=4).pack()#Button(root,text='anchor',anchor='sw',width=30,height= fromTkinterimport*root=Tk()bfg=Button(root,text='changeforeground',fg='red')bbg=Button(root,text='changebackgroud',bg='blue')'''8.Button5Button:0,2,4,6,8fromTkinterimport*root=forbin[0,1,2,3,4]:text=string(b),bd=b).pack()'''9.ButtonfromTkinterimportroot=forrin['raised','sunken','groove','ridge']:text=r,relief=r,width=30).pack()'''10.ButtonfromTkinterimport*root=Tk()defstatePrint():printforrin['normal','active','disabled']:text=r,state=r,width=command=statePrint).pack()ButtonstatePrint,normalactivedisablefromTkinterimport*root=Tk()defifb['text']==print'change'print'text'v=b=Button(root,textvariable= mand=changeText) Entry#Entry'''1.EntryfromTkinterimport*root=Tk()Entry(root,text='inputyourtexthere').pack()EntryEntry'inputyourtexthere',運(yùn)行此代碼,并沒有看到文本的顯示,由此可知與LableButton不同,EntrytextEntry'''2.EntrytextvariableEntryfromTkinterimport*root=e=entry=Entry(root,textvariable=e)e.set('inputyourtexthere')#上面的例子中將eEntry綁定,然后將e值設(shè)置為'inputyourtexthere',程Entrystate'readonly'fromTkinterimport*root=Tk()e=entry=Entry(root,textvariable=e)e.set('inputyourtexthere')entry['state']='readonly''''4.設(shè)置 show來指定。fromTkinterimport*root=Tk()e=entry=Entry(root,textvariable=e)e.set('inputyourtexthere')entry['show']='*'formaskin['*','#','$']:e=entry=Entry(root,textvariable=e)entry['show']=maskvalidate來校驗(yàn)輸入的內(nèi)容validateText回調(diào)函數(shù)fromTkinterimport*root=Tk()e=defvalidateText(contents):printcontentsreturnentry=Entry(root,validate='key',textvariable= mand=文檔中說明使用validate來接受的 mand來確定輸入的內(nèi)容是否合 Checkbutton,顯示文本為"python"fromTkinterimport*root=Checkbutton(root,text='python').pack()'''2.CheckbuttonfromTkinterimport*defprint'youcheckthisbutton'root=Tk()Checkbutton(root,text='checkpython',command=callCheckbutton).pack()'''3.CheckbuttontextfromTkinterimport*defv.set('checkroot=v=StringVar()v.set('checkpython') '''4.上述的textvariable使用方法與Button的用法完全相同,使用此例是為了區(qū)別本身綁定,Checkbutton:OnOffOn1,Off0,如:'''#顯示Checkbutton的值fromTkinterimport*root=Tk()v=v=defcallCheckbutton():printv.get()variable=text='checkbuttonvalue',command=callCheckbutton).pack()'''5.Checkbutton的值不僅僅是1或0,可以是其他類型的數(shù)值,可以通過onvalue和offvalue屬性設(shè)置Checkbutton的狀態(tài)值,如下代碼將On設(shè)置為'python',Off值設(shè)置為fromTkinterimport*root=Tk()v=StringVar()defcallCheckbutton():printv.get()variable=text='checkbuttononvalue offvalue= #Radiobutton'''1.Radiobutton'''fromTkinterimport*root=Radiobutton(root,text='python').pack()Radiobutton(root,text='tkinter').pack()Radiobutton(root,text='widget').pack()'''2.RadiobuttonfromTkinterimport*root=RadiobuttonRadiobuttonvvalue=1的按鈕v=IntVar()foriinRadiobutton(root,variable=v,text='python',value=fromTkinterimport*root=Tk()vLang=IntVar()vOS=IntVar()forvin foriinrange(3): variable=v,value=i,text='python'+'''4.alue,則這兩個(gè)按鈕的工作方式完全相同'''#-*-coding:cp936-*-fromTkinterimport*root=Tk()v=IntVar()foriinrange(3):variable=v,value=1,text='python'+foriinrange(3):variable=v,value=i,text='python'+str(2+'''5.CheckbuttonRadiobutton#-*-coding:cp936-*-fromTkinterimport*root=Tk()v=IntVar()defprint'callr1'defr2():print'callr2'defr3():print'callr3'defr4():print'callr4'i=0forrin[r1,r2,r3,r4]:variable=text='radiobutton',value=i,commandcommand=variable=text='radiobutton',value=i,command=i+='''6.Radiobuttonindicatoron,缺省情況下為1,如果將這個(gè)屬性改為0,則其外觀是Sunken'''fromTkinterimport*root=Tk()v=IntVar()foriinrange(3):variable=v,indicatoron=0,text='python&tkinter',value=i '''1.Listbox,item'''fromTkinterimport*root=lb=foritemin['python','tkinter','widget']:'''2.Listbox,selectmaod'''fromTkinterimport*root=lb=Listbox(root,selectmode=MULTIPLE)foritemin['python','tkinter','widget']:item,MULTIPLEitem,Checkbox'''3.selectmodeBROWSEListbox位置(不是移動(dòng)item屬性也是Listbox在默認(rèn)設(shè)置的值,這個(gè)程序與1.程序運(yùn)行的fromTkinterimport*root=Tk()lb=Listbox(root,selectmode=foritemin['python','tkinter','widget']:BROWSESINGLE,但不支持鼠標(biāo)移動(dòng)選中位置。fromTkinterimport*root=lb=Listbox(root,selectmode=foritemin'''4.'''4.selectmodeEXPANDEDListboxShiftControl。'''fromTkinterimport*root=lb=Listbox(root,selectmode=EXTENDED)foritemin['python','tkinter','widget']:#運(yùn)行程序,點(diǎn)中“python",shift"widget#運(yùn)行程序,點(diǎn)中"python",control+點(diǎn)擊"widgetpythonwidget,第二項(xiàng)tkinterinsertListboxitem,這個(gè)函數(shù)有兩個(gè)屬性一個(gè)#有兩個(gè)特殊的值A(chǔ)CTIVEEND,ACTIVEitem(即使用當(dāng)前選中的索引作為插入位置;END#ListboxListboxitem,ListboxfromTkinterimport*root=Tk()lb=foritemin['python','tkinter','widget']:itemstringitemfromTkinterimport*root=Tk()lb=Listbox(root)foriin delete0END,即可fromTkinterimport*root=Tk()lb=Listbox(root)foriinListboxMULTIPLEEXTENDED,selection_setListboxfromTkinterimport*root=Tk()lb=Listbox(root)foriin'''8.ListboxitemfromTkinterimport*root=lb=Listbox(root)foriinprintlb.size()Listbox10item,然后刪除索引為3item,最后的打印結(jié)果為9,即當(dāng)Listbox9項(xiàng)fromTkinterimport*root=Tk()lb=Listbox(root)foriinprintlb.get(3)fromTkinterimport*root=Tk()lb=Listbox(root)foriinprintlb.get(3,7)#返回值為('300',400','500','600'700tuple'''10.itemfromTkinterimport*root=lb=Listbox(root)foriinprintlb.curselection()#返回值為 '8'),而不'''11.fromTkinterimport*root=lb=Listbox(root)foriinprintprint'''12.Listbox#-*-coding:cp936-*-fromTkinterimport*root=v=lb=Listbox(root,listvariable=v)foriinrange(10):print#輸出:('0'100','200','300',400',500'600',700','800', 綁定#它不支持commandbind#-*-coding:cp936-*-fromTkinterimport*root=Tk()defprintlb.get(lb.curselection())lb=Listbox(root)foriinrange(10): '''1.Scale'''fromTkinterimport*root=Tk()#-*-coding:cp936-*-fromTkinterimport*root=Tk()from_=-500,#設(shè)置最大值to=500,#設(shè)置最小值resolution5,orientHORIZONTAL'''3.Scale*coding:cp936*-fromTkinterimport*root=Tk()v=StringVar()from_=0,#設(shè)置最小值to100.0,resolution=0.0001,#設(shè)置步距值orientHORIZONTAL,variable=v#綁定變量printv.get()#-*-coding:cp936-*-fromTkinterimportroot=defprintScale(text):print'text=',textprint'v=v=StringVar()from_=0,#設(shè)置最小值to100.0,resolution=0.0001,#設(shè)置步距值orientHORIZONTAL,variable=v,#綁定變量commandprintScaleprintv.get()'''5.控制顯示位數(shù),可以理解為:Scaledigits8位形式顯示,在最后一位#-*-coding:cp936-*-fromTkinterimport*root=defprintScale(text):print'text=',textprint'v=v=StringVar()from_=0,#設(shè)置最小值to100.0,resolution=0.0001,#設(shè)置步距值orientHORIZONTAL,digits=8,#設(shè)置顯示的位數(shù)為8variable=v,#綁定變量commandprintScaleprintv.get()#-*-coding:cp936-fromTkinterimportroot=from_=0,#設(shè)置最大值to100.0,orient=HORIZONTAL,#設(shè)置水平方向label='choice:',#設(shè)置 #-*-coding:cp936-*-fromTkinterimport*root=Tk()sl=sl.set(50)#將Scale的值設(shè)置為50 '''1.Spinbox'''fromTkinterimport*root=Tk()控制值的改變。'''2.Spinbox#-*-coding:cp936-*-fromTkinterimport*root=Tk()from_0,to=100,#設(shè)置最大值increment55,Scaleresolution#-*-coding:cp936-*-fromTkinterimport*root=Tk()sb=values=(0,2,20,40,-increment=)Spinboxtupleprintsb['values']#顯示的第一個(gè)值為0,up2,20,40,-1,不再是增2tupletuple'''4.Spinbox#-*-coding:cp936-*-fromTkinterimport*root=Tk()v=sb=values=(0,2,20,40,-increment=2,textvariable=v)printv.get()SpinboxtuplevsbSpinbox20,運(yùn)行程序,Spinbox值顯示為20up40,#-*-coding:cp936-*-fromTkinterimport*root=Tk()v=sb=values=(0,2,20,40,-increment=2,textvariable=v)printv.get()Spinboxtuple'''5.Spinbox#-*-coding:cp936-*-fromTkinterimport*root=Tk()defprintSpin():printsb=from_0,to=10,#最大值commandprintSpin#)SpinboxprintSpin'Spinbox'Scale'''6.Spinboxvalues#-*-coding:cp936-*-fromTkinterimport*root=Tk()defget()方法來得到當(dāng)前的顯示值printsb.get()sb=from_0,to=10,#最大值commandprintSpin#)delete,Spinbox1234,upSpinbox235,再#-*-coding:cp936-*-fromTkinterimport*root=Tk()defprintSpin():printsb=from_1234,to=9999,#最大值increment=1,commandprintSpin#)#-*-coding:cp936-*-fromTkinterimport*root=sb=from_1234,to=9999,#最大值increment=1)printsb.get()delete#-*-coding:cp936-*-fromTkinterimport*root=Tk()defdelete()方法刪除指定索引的字符printsb.get()sb=values=command=)Spinbox#-*-coding:cp936-*-fromTkinterimport*root=Tk()defdelete()方法刪除指定索引的字符printsb.get()sb=
values=( commandprintSpin) #-*-coding:cp936-*-fromTkinterimport*root=Tk()defget()方法來得到當(dāng)前的顯示值printsb=from_1234,to=9999,#最大值increment=1,commandprintSpin#)SpinboxprintSpin #-*-coding:cp936-*-fromTkinterimport*root=Tk()defget()方法來得到當(dāng)前的顯示值printsb=from_1234,to=9999,#最大值incrementincrement=commandprintSpin) '''1.Scrollbar'''fromTkinterimport*root=Tk()Scrollbar,slider。fromTkinterimport*root=sl=Scrollbar(root)fromTkinterimport*root=Tk()sl=Scrollbar(root,orient=HORIZONTAL)#-*-coding:cp936-*-fromTkinterimport*root=Tk()defscrollCall#printmoveto,posprintsl.get()sl=Scrollbar(root,orient= mand=scrollCall)scrollCallScrollbar#-*-coding:cp936-*-fromTkinterimport*root=Tk()lb=Listbox(root)sl=Scrollbar(root)sl.pack(side=RIGHT,fill=#sideScrollbarfillWM#下面的這句是關(guān)鍵:指定Listbox的yscrollbar的回調(diào)函數(shù)為Scrollbar的set mand']=sl.setforiinrange(100):lb.pack(side=ScrollbarcommandListbaryviewsl['command']=lb.yview'''5.這樣理解二者之間的關(guān)系:當(dāng)Listbox改變時(shí),Scrollbar調(diào)用set以改變slder的位置;當(dāng)Scrollbar改變了slider的位置時(shí),Listbox調(diào)用yview以顯示新的list項(xiàng),為 mad與scrollbar的set解除綁定,看看會(huì)有什么效果#-*-coding:cp936-*-fromTkinterimport*root=Tk()lb=Listbox(root)sl=Scrollbar(root)sl.pack(side=RIGHT,fill= mand']=sl.setforiinrange(100):lb.pack(side=LEFT)sl['command']=lb.yview 使用Scrollbarslider來移動(dòng)Listbox的視圖。#-*-coding:cp936-*-fromTkinterimport*root=Tk()lb=Listbox(root)sl=Scrollbar(root)sl.pack(side=RIGHT,fill= mand']=sl.setforiinrange(100):lb.pack(side=LEFT)#sl['command']=lb.yview圖改變的消息,調(diào)用了自己的set函數(shù)。之之(2007-10-02 篇 #添加菜 #-*-coding:cp936-*-fromTkinterimport*root=Tk() print bar foritemin['Python','PHP','CPP','C','Java','JavaScript','VBScript']:mand(label= mand= ']= fromTkinterimport*root=Tk() print bar bar,tearoff=foritemin['Python','PHP','CPP','C','Java','JavaScript','VBScript']:mad(label= mand= # bar ,即 bar.add_cascade(label='Language', =file ']= '''3.Checkbutton#-*-coding:cp936-*-fromTkinterimport*root=Tk()defprintItem():print'Python=',vPython.get()print'PHP=',vPHP.get()print'CPP=print'C=',vC.get()print'Java=',vJava.get()print'JavaScript=',vJavaScript.get()print'VBScript=',vVBScript.get()bar vPython=StringVar() = =StringVar() = =StringVar()vJavaScript=StringVar() =StringVar() bar,tearoff=0)fork,vin{'Python':vPython, .add_checkbutton(label= mand=printItem,variable=v) bar的 屬性指定為file ,即file bar的下拉菜單bar.add_cascade(label='Language', =file ']= CheckbuttonprintItemCheckbutton'''4.Radiobutton#-*-coding:cp936-*-fromTkinterimport*root=Tk()bar= vLang=StringVar()defprintItem():print'vLang=',vLang.get() bar,tearoff=0)forkin .add_radiobutton(label= mand=printItem,variable=vLang) bar的 屬性指定為file ,即file bar的下拉菜單bar.add_cascade(label='Language', =file ']= #-*-coding:cp936-*-fromTkinterimport*root=bar defprintItem():print bar,tearoff=forkin['Python','PHP','CPP','C','Java','JavaScript','VBScript']:mand(label= mand=printItem) bar.add_cascade(label='Language', =file ']= 6.將以上的例5#-*-coding:cp936-*-fromTkinterimport*root=Tk()bar defprintItem():print'popup bar,tearoff=forkin['Python','PHP','CPP','C','Java','JavaScript','VBScript']:mand(label= mand=printItem) bar.add_cascade(label='Language', =file #此時(shí)就不要將root的 bar了 ']= defpopup(event): ,右擊時(shí)調(diào)用popup,此時(shí)與菜單綁定的是root,可以設(shè)置為 試一個(gè)可以看到各個(gè)菜單項(xiàng)的功能都是可以使用的所以彈出菜單與一般的菜單#-*-coding:cp936-*-fromTkinterimport*root=Tk()bar defprint bar,tearoff=0)forkinrange(5):mand(label=str(k),command=printItem)bar.add_cascade(label='Language', =file 在索引添加一菜 mand mand(1,label1000',commandprintItem)#在索引2checkbutton .insert_checkbutton(2,label'2000',commandprintItem)#在索引3radiobutton .insert_radiobutton(3,label'3000',commandprintItem) file.delete(6,9)file.delete(0)'] button篇(2007-10-02 '''這是一個(gè)過時(shí)了的控件,從Tk8.0開始將不再使用這個(gè)控件,取而代之的是 button的常用方法,可以看到與 #-*-coding:cp936-*-fromTkinterimport*root=Tk()mbLang button(root,text= foritemin['Python','PHP','CPP','C','Java','JavaScript','VBScript']: mand(label=item) ']=mbLang.mbLang.pack(side=#分隔符將相關(guān)的菜單項(xiàng)進(jìn)行分組,只是UI上的實(shí)現(xiàn),程序上沒有任何改變,它也不執(zhí)行任 #添加向菜單中添加checkbutton項(xiàng)mbOS= button(root,text='OS') foritemin['Unix','Linux','Soloris','Windows']: .add_checkbutton(label=item) ']=mbOS.pack(side=mbLinux= button(root,text='Linux') foritemin['Redhat','Fedra','Suse','ubuntu','Debian']: .add_radiobutton(label=item) ']=mbLinux.mbLinux.pack(side=LEFT) mand(label= .insert_checkbutton(3,label= '''1..Message'''fromTkinterimport*root=Message(root,text=' oMessage').pack() 性。Label沒有。fromTkinterimport*root=Message(root,text=' oMessage',width=60).pack() 性。Label沒有。'''3.aspect#-*-coding:cp936-*-fromTkinterimport*root=Tk()foriinMessage(root,text='A'*i,aspect=400).pack()wider/height=1.5,aspect4,即寬為高的4倍,可'''4.Message#-*-coding:cp936-*-fromTkinterimport*root=Tk()v=StringVar()foriinMessage(root,text='A',textvariable=#打印當(dāng)前的vMessagevprintv.get()vMessagetextMessagetext#-*-coding:cp936-*-fromTkinterimport*root=foriinMessage(root,text='ABCDEFGHI',justify=i).pack() 之 篇(2007-10-02 之 篇 '''1.創(chuàng)建Option #-*-coding:cp936-*-fromTkinterimport*root=Tk()v=StringVar(root)om=Option #-*-coding:cp936-*-fromTkinterimport*root=Tk()v=#創(chuàng)建一個(gè) 控om= ) StringVar '''2.設(shè)置 #當(dāng) #-*-coding:cp936-*-fromTkinterimport*root=Tk()v=StringVar(root)#創(chuàng)建一個(gè) 控om= )printv.get()#運(yùn)行程序 #-*-coding:cp936-*-fromTkinterimport*root=Tk()v=StringVar(root)#創(chuàng)建一個(gè) 控om= )printv.get()#程序依舊是默認(rèn)值改變?yōu)門kinter,打印結(jié)果也變?yōu)門kinter,但Tkinter '''3.打印Option #-*-coding:cp936-*-fromTkinterimport*root=root=v=StringVar(root)defprintOption(event):printv.get()#創(chuàng)建一個(gè) 控om= ) 的選項(xiàng)#-*-coding:cp936-*-fromTkinterimport*root=Tk()Lang=['Python','PHP','CPP','C','Java','JavaScript','VBScript']v=StringVar(root)defprintOption(event):printv.get()#創(chuàng)建一個(gè) om=apply(Option ,(root,v)+tuple(Lang)) '''1.#-*-coding:cp936-*-fromTkinterimport*root=Tk()#以不同的 forfminFrame(height=20,width=400,bg=fm).pack()Frame,大小均為20*400'''2.FrameWidget'''#-*-coding:cp936-*-fromTkinterimport*root=Tk()fm= 別各個(gè)frameforcolorin['red','blue']:fm.append(Frame(height=200,width=400,bg=color))#向下面的Frame中添加一個(gè)LabelLabel(fm[1],text=' olabel').pack()'''3.Tk8.4FrameLabelFrameTitlefromTkinterimport*root=forlfintextFrametitleLabelFrame(height200,width300,textlf).pack() '''1.PanedWindowPane'''add#-*-coding:cp936-*-fromTkinterimport*root=Tk()panes=PanedWindow(orient=VERTICAL)panes.pack(fill=BOTH,expand=1)forwin[Label,Button,Checkbutton,Radiobutton]:panes.add(w(panes,text=' '''2.PanedWindowpane'''forget/remove#-*-coding:cp936-*-fromTkinterimport*root=Tk()ws=panes=PanedWindow(orient=VERTICAL)panes.pack(fill=BOTH,expand=1)forwin[Label,Button,Checkbutton,Radiobutton]:ws.append(w(panes,text=' forwin'''3.PanedWindowpane'''paneconfig#-*-coding:cp936-*-fromTkinterimport*root=Tk()ws=ps=PanedWindow(orient=VERTICAL)ps.pack(fill=BOTH,expand=1)forwinws.append(w(ps,textws.append(w(ps,text=forwin#ps.after(ws[0],Label(ps,text= ps.paneconfig(Label(ps,text='world'),after=ws[0]) #TopLevelFrame(Title)'''1.Toplevel'''#-*-coding:cp936-*-fromTkinterimport*root=Tk()tl=#為了區(qū)別root和tl,我們向tl中添加了一個(gè)LabelLabel(tl,text=' olabel').pack()labeltl'''2.Toplevel#title#-*-coding:cp936-*-fromTkinterimport*root=Tk()tl=Toplevel()tl oToplevel')tl#為了區(qū)別root和tl,我們向tl中添加了一個(gè)LabelLabel(tl,text=' olabel').pack()'''3.Toplevel#-*-coding:cp936-*-fromTkinterimport*root=Tk()mbYes,mbYesNo,mbYesNoCancel,mbYesNoAbort= defMessageBox():mbType=mbYesNotextShow=ifmbType==mbYes:textShow=elifmbType==textShowtextShow=elifmbType==mbYesNoCancel:textShow='YesNoCancel'elifmbType==mbYesNoAbort:textShow='YesNoAbort'tl=Toplevel(height=200,width=400)Label(tl,text=textShow).pack()Button(root,text='clickme',command=MessageBox).pack() '''1.Text'''fromTkinterimport*root=Tk()t=Text(root)#rootTextCtrl+C/VTextCtrl+Z'''2.Text#insertfromTkinterimport*root=Tk()t= ABCDEFGHIJ'''3.line.colindexesText#-*-coding:cp936-*-fromTkinterimport*root=Tk()t= ABCDEFGHIJindexesTextbuffer'''markText'''4.mark#-*-coding:cp936-*-fromTkinterimport*root=t=foriinrange(1,10): #定義各個(gè)Button的回調(diào)函數(shù),這些函數(shù)使用了內(nèi)置的definsertText():defcurrentText():defendText():defselFirstText():defselLastText():text='insertjcodeeratINSERT',command=insertText).pack(fill=X)text='insertjcodeeratCURRENT',command=insertText).pack(fill=text='insertjcodeeratEND',command=endText).pack(fill=X)text='insertjcodeeratSEL_FIRST',command=selFirstText).pack(fill=X)text='insertjcodeeratSEL_LAST',command=selLastText).pack(fill=X)mark:#END:Textbuffer 異 #表達(dá)式(expressionIndexes,如下:countcharscountcountcharscountcountlinescountcountlinescount#-*-coding:cp936-*-fromTkinterimport*root=Tk()t=foriinrange(1,10): a=defforwardChars():#t.mark_set(a,CURRENT+'+5chars')t.mark_set(a,CURRENT+'+5c')def#t.mark_set(a,CURRENT+'-5chars')t.mark_set(a,CURRENT+'-5c')def#t.mark_set(a,CURRENT+'+5lines)t.mark_set(a,CURRENT+'+5l')def#t.mark_set(a,CURRENT+'-5lines)t.mark_set(a,CURRENT+'-5l')deflinestartt.mark_set(a,CURRENTt.mark_set(a,CURRENT+'deft.mark_set(a,CURRENT+'lineend')defwordStart():t.mark_set(a,CURRENT+'wordstart')defwordend():t.mark_set(a,CURRENTwordend')#mark:test_mark默認(rèn)值為CURRENTButton(root,text='forward5chars',command=forwardChars).pack(fill=X)Button(root,text='backward5chars',command=backwardChars).pack(fill=X)Button(root,text='forward5lines',command=forwardLines).pack(fill=X)Button(root,text='backward5lines',command=backwardLines).pack(fill=X)Button(root,text='linestart',command=lineStart).pack(fill=X)Button(root,text='lineend',command=lineEnd).pack(fill=X)Button(root,text='wordstart',command=lineEnd).pack(f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水上運(yùn)輸合同標(biāo)的船舶檢驗(yàn)與維護(hù)協(xié)議4篇
- 二零二五版市政排水管網(wǎng)改造升級(jí)施工勞務(wù)分包合同4篇
- 擔(dān)保合同信息協(xié)議書(2篇)
- 二零二五版嬰幼兒奶粉線上線下同步促銷活動(dòng)合同4篇
- 沿街旺鋪?zhàn)赓U合同(2025版)6篇
- 2025年度門衛(wèi)勞務(wù)與社區(qū)治理合作合同4篇
- 2025年度智能交通明企金哨軟件解決方案合同4篇
- 2025年度牛肉產(chǎn)品國際認(rèn)證與標(biāo)準(zhǔn)制定合同4篇
- 2025年度個(gè)人醫(yī)療設(shè)施建設(shè)與改造承包合同模板2篇
- 二零二五年度農(nóng)業(yè)綜合生產(chǎn)能力提升機(jī)耕作業(yè)承包合同3篇
- 物業(yè)民法典知識(shí)培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)人教版上冊寒假作業(yè)(綜合復(fù)習(xí)能力提升篇)(含答案)
- 《萬方數(shù)據(jù)資源介紹》課件
- 醫(yī)生定期考核簡易程序述職報(bào)告范文(10篇)
- 第一章-地震工程學(xué)概論
- 《中國糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- 初級(jí)創(chuàng)傷救治課件
- 交通運(yùn)輸類專業(yè)生涯發(fā)展展示
- 2024年山東省公務(wù)員錄用考試《行測》試題及答案解析
- 神經(jīng)重癥氣管切開患者氣道功能康復(fù)與管理專家共識(shí)(2024)解讀
評(píng)論
0/150
提交評(píng)論