版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python程序設(shè)計(jì)授課教師:第10章圖形界面編程課程描述前面介紹的Python程序都只能輸出字符串和數(shù)值,這顯然不能滿足實(shí)際應(yīng)用的需求。Python提供了一些用于圖形界面編程的模塊,包括tkinter模塊、wxWidgets模塊、easygui模塊和wxpython模塊。由于篇幅所限,本章以tkinter為例介紹一些使用Python工具包進(jìn)行圖形界面編程的方法。本章知識(shí)點(diǎn)10.1常用Tkinter組件的使用10.2窗體布局10.3Tkinter字體10.4事件處理10.1常用Tkinter組件的使用10.1.1彈出消息框10.1.2創(chuàng)建Windows窗口10.1.3Label組件10.1.4Button組件10.1.5Canvas畫布組件10.1.6Checkbutton組件10.1.7Entry組件10.1.8Frame組件10.1.9Listbox組件10.1.10Menu組件10.1.11Radiobutton組件10.1.12Scale組件10.1.13Text組件10.1.1彈出消息框彈出消息框是圖形界面編程最基本的功能。使用tkinter.messagebox模塊可以實(shí)現(xiàn)此功能。首先需要引入tkinter.messagebox模塊,具體如下:fromtkinter.messageboximport*1.彈出提示消息框使用showinfo()函數(shù)可以彈出提示消息框,方法如下:showinfo(title=標(biāo)題,message=內(nèi)容)【例10-1】彈出一個(gè)提示消息框fromtkinter.messageboximport*showinfo(title='提示',message='歡迎光臨')運(yùn)行程序會(huì)彈出如圖所示的消息框。消息框左側(cè)有一個(gè)信息圖標(biāo)。2.彈出警告消息框使用showwarning()函數(shù)可以彈出警告消息框,方法如下:showwarning(title=標(biāo)題,message=內(nèi)容)【例10-2】彈出一個(gè)警告消息框fromtkinter.messageboximport*showwarning(title='提示',message='請(qǐng)輸入密碼')3.彈出錯(cuò)誤消息框使用showerror()函數(shù)可以彈出錯(cuò)誤消息消息框,方法如下:showerror(title=標(biāo)題,message=內(nèi)容)【例10-3】彈出一個(gè)警告消息框fromtkinter.messageboximport*showerror(title='提示',message='密碼錯(cuò)誤')4.彈出疑問(wèn)消息框使用askquestion()函數(shù)可以彈出一個(gè)包含“是”和“否”按鈕的疑問(wèn)消息框,方法如下:askquestion(title=標(biāo)題,message=內(nèi)容)如果用戶單擊“是”按鈕,則askquestion()函數(shù)返回YES(即字符串'yes'),如果用戶單擊“否”按鈕,則askquestion()函數(shù)返回NO(即字符串'no')。【例10-4】彈出一個(gè)疑問(wèn)消息框fromtkinter.messageboximport*ret=askquestion(title='請(qǐng)確認(rèn)',message='是否刪除此用戶?')ifret==YES:showinfo(title='提示',message='已刪除')使用askyesnocancel()函數(shù)也可以使用askyesnocancel()函數(shù)彈出一個(gè)包含“是”和“否”按鈕的疑問(wèn)消息框,方法如下:askyesnocancel(title=標(biāo)題,message=內(nèi)容)與askquestion()函數(shù)不同的是,如果用戶單擊“是”按鈕,則askyesnocancel()函數(shù)返回True,如果用戶單擊“否”按鈕,則askyesnocancel()函數(shù)返回False。【例10-5】使用askyesnocancel()函數(shù)彈出一個(gè)疑問(wèn)消息框fromtkinter.messageboximport*ret=askyesno(title='請(qǐng)確認(rèn)',message='是否刪除此用戶?')ifret==True:showinfo(title='提示',message='刪除')5.彈出帶確定和取消按鈕的疑問(wèn)消息框使用askokcancel()函數(shù)可以彈出一個(gè)包含“確定”和“取消”按鈕的疑問(wèn)消息框,方法如下:askokcancel(title=標(biāo)題,message=內(nèi)容)如果用戶單擊“確定”按鈕,則askokcancel()函數(shù)返回True,如果用戶單擊“取消”按鈕,則askokcancel()函數(shù)返回False?!纠?0-6】彈出一個(gè)帶“確定”和“取消”按鈕的疑問(wèn)消息框fromtkinter.messageboximport*ret=askokcancel(title='請(qǐng)確認(rèn)',message='是否確定繼續(xù)?')ifret==True:showinfo(title='提示',message='繼續(xù)')【例10-6】運(yùn)行結(jié)果運(yùn)行程序會(huì)彈出如下左圖所示的消息框。消息框左側(cè)有一個(gè)疑問(wèn)圖標(biāo)。如果用戶單擊“確定”按鈕,則彈出如下右圖所示的消息框。6.彈出帶重試和取消按鈕的疑問(wèn)消息框使用askretrycancel()函數(shù)可以彈出一個(gè)包含“重試”和“取消”按鈕的疑問(wèn)消息框,方法如下:askretrycancel(title=標(biāo)題,message=內(nèi)容)如果用戶單擊“重試”按鈕,則askretrycancel()函數(shù)返回True,如果用戶單擊“取消”按鈕,則askretrycancel()函數(shù)返回False?!纠?0-7】彈出一個(gè)帶“重試”和“取消”按鈕的警告消息框fromtkinter.messageboximport*ret=askokcancel(title='請(qǐng)確認(rèn)',message='是否確定繼續(xù)?')ifret==True:showinfo(title='提示',message='重試')10.1.2創(chuàng)建Windows窗口使用tkinter模塊可以很方便地創(chuàng)建Windows窗口。1.導(dǎo)入Tkinter模塊在開發(fā)圖形用戶界面應(yīng)用程序之前首先應(yīng)該導(dǎo)入Tkinter模塊,代碼如下:fromtkinterimport*2.創(chuàng)建窗口對(duì)象可以使用下面的方法創(chuàng)建一個(gè)Windows窗口對(duì)象:窗口對(duì)象
=Tk()3.顯示W(wǎng)indows窗口在創(chuàng)建Wiundows窗口對(duì)象后,可以使用下面的代碼顯示W(wǎng)indows窗口:窗口對(duì)象.mainloop()mainloop()函數(shù)的功能是進(jìn)入窗口的主循環(huán),也就是顯示窗口?!纠?0-8】顯示一個(gè)Windows窗口fromtkinterimport*win=Tk()win.mainloop()4.設(shè)置窗口標(biāo)題在創(chuàng)建Windows窗口對(duì)象后,可以使用title()函數(shù)設(shè)置窗口的標(biāo)題,方法如下:窗口對(duì)象.title(標(biāo)題字符串)【例10-9】顯示一個(gè)Windows窗口,標(biāo)題為“我的窗口”fromtkinterimport*win=Tk()win.title("我的窗口")win.mainloop()5.設(shè)置窗口大小在創(chuàng)建Windows窗口對(duì)象后,可以使用geometry()函數(shù)設(shè)置窗口的標(biāo)題,方法如下:窗口對(duì)象.geometry(size)參數(shù)size用于指定窗口大小,格式如下:寬度x高度注意,這里x不是乘號(hào),而是字母x?!纠?0-10】顯示一個(gè)Windows窗口,初始大小為800
600fromtkinterimport*win=Tk()win.geometry("800x600")win.mainloop()5.設(shè)置窗口大小還可以使用minsize()函數(shù)、maxsize()函數(shù)分別設(shè)置窗口的最小大小和最大大小,方法如下:窗口對(duì)象.minsize(最小寬度,最小高度)窗口對(duì)象.maxsize(最大寬度,最大高度)【例10-11】顯示一個(gè)Windows窗口,初始大小為800
600,最小大小為400
300,最大大小為1440
900fromtkinterimport*win=Tk()win.geometry("800x600")win.minsize(400,300)win.maxsize(1440,900)win.mainloop()10.1.3Label組件Label組件用于在窗口中顯示文本或位圖。1.創(chuàng)建和顯示Label對(duì)象創(chuàng)建Label對(duì)象的基本方法如下:Label對(duì)象=Label(TkinterWindows窗口對(duì)象,text=Label組件顯示的文本)顯示Label對(duì)象的方法如下:Label對(duì)象.pack()【例10-12】使用Label組件的簡(jiǎn)單例子fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("我的窗口")#設(shè)置窗口標(biāo)題l=Label(win,text='我是Label組件')#創(chuàng)建Label組件l.pack()#顯示Label組件win.mainloop()2.使用Label組件顯示圖片除了顯示文本,還可以使用bitmap屬性在Label組件中顯示位圖。2.使用Label組件顯示圖片【例10-13】使用Label組件顯示位圖的例子fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("我的窗口")#設(shè)置窗口標(biāo)題l1=Label(win,bitmap='error')#顯示錯(cuò)誤圖標(biāo)l1.pack()#顯示Label組件l2=Label(win,bitmap='hourglass')#顯示沙漏圖標(biāo)l2.pack()#顯示Label組件l3=Label(win,bitmap='info')#顯示信息圖標(biāo)l3.pack()#顯示Label組件l4=Label(win,bitmap='questhead')#顯示信息圖標(biāo)l4.pack()#顯示Label組件l5=Label(win,bitmap='question')#顯示疑問(wèn)圖標(biāo)l5.pack()#顯示Label組件l6=Label(win,bitmap='warning')#顯示警告圖標(biāo)l6.pack()#顯示Label組件l7=Label(win,bitmap='gray12')#顯示灰度背景圖標(biāo)gray12l7.pack()#顯示Label組件【例10-13】使用Label組件顯示位圖的例子l8=Label(win,bitmap='gray25')#顯示灰度背景圖標(biāo)gray25l8.pack()#顯示Label組件l9=Label(win,bitmap='gray50')#顯示灰度背景圖標(biāo)gray50l9.pack()#顯示Label組件l10=Label(win,bitmap='gray75')#顯示灰度背景圖標(biāo)gray75l10.pack()#顯示Label組件win.mainloop()【例10-13】運(yùn)行結(jié)果【例10-14】使用Label組件顯示自定義圖片fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("我的窗口")#設(shè)置窗口標(biāo)題bm=PhotoImage(file='C:\Python34\Lib\idlelib\Icons\idle_48.png')label=Label(win,image=bm)label.bm=bmlabel.pack()#顯示Label組件win.mainloop()3.設(shè)置Label組件的顏色fg屬性用于設(shè)置組件的前景色,bg屬性用于設(shè)置組件的背景色??梢允褂妙伾址畞?lái)表示顏色,如'RED'表示紅色,'BLUE'表示藍(lán)色,'GREEN'表示綠色等?!纠?0-15】設(shè)置Label組件的前景色和背景色fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象label=Label(win,fg='red',bg='blue',text='有顏色的字符串')label.pack()#顯示Label組件win.mainloop()其他常用的Lable組件屬性屬
性說(shuō)
明width寬度height高度compound指定文本與圖像如何在Label上顯示,缺省為None。
當(dāng)指定image/bitmap時(shí),文本(text)將被覆蓋,只顯示圖像??梢允褂玫闹等缦拢?/p>
left:圖像居左
right:圖像居右。
top:圖像居上
bottom:圖像居下
center:文字覆蓋在圖像上wraplength指定多少單位后開始換行,用于多行顯示文本justify指定多行的對(duì)齊方式,可以使用的值為L(zhǎng)EFT(左對(duì)齊)或RIGHT(右對(duì)齊)ahchor指定文本(text)或圖像(bitmap/image)在Label中的顯示位置??捎弥等缦拢?/p>
e,垂直居中,水平居右;
w,垂直居中,水平居左;
n,垂直居上,水平居中
s,垂直居下,水平居中
ne,垂直居上,水平居右
se,垂直居下,水平居中
sw,垂直居下,水平居左
nw,垂直居上,水平居左
center,垂直居中,水平居中10.1.4Button組件Button組件用于在窗口中顯示按鈕,按鈕上可以顯示文字或圖像。10.1.4Button組件1.創(chuàng)建和顯示Button對(duì)象創(chuàng)建Button對(duì)象的基本方法如下:Button對(duì)象=Button(tkinterWindows窗口對(duì)象,text=Button組件顯示的文本,command=單擊按鈕所調(diào)用的對(duì)象)顯示Button對(duì)象的方法如下:Button對(duì)象.pack()【例10-16】使用Button組件的簡(jiǎn)單例子fromtkinterimport*fromtkinter.messageboximport*defCallBack():showinfo(title='',message='點(diǎn)我干嘛')win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Button組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題b=Button(win,text='點(diǎn)我啊',command=CallBack)#創(chuàng)建Button組件b.pack()#顯示Button組件win.mainloop()【例10-16】運(yùn)行結(jié)果運(yùn)行此程序,會(huì)彈出一個(gè)如圖所示的窗口。單擊按鈕會(huì)調(diào)用CallBack()函數(shù),彈出一個(gè)消息框。2.使用Button組件顯示圖片除了顯示文本,還可以使用image屬性和bm屬性顯示自定義圖片,方法如下:bm=PhotoImage(file=文件名)b=Button(win,text='Button組件顯示的文本',command=單擊按鈕所調(diào)用的對(duì)象,image=bm)#創(chuàng)建Button組件b.bm=bm【例10-17】使用Button組件顯示自定義圖片fromtkinterimport*fromtkinter.messageboximport*defCallBack():showinfo(title='',message='點(diǎn)我干嘛')win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Button組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題bm=PhotoImage(file='C:\Python34\Lib\idlelib\Icons\idle_48.png')b=Button(win,text='點(diǎn)我啊',command=CallBack,image=bm)#創(chuàng)建Button組件b.bm=bmb.pack()#顯示Button組件win.mainloop()【例10-17】運(yùn)行結(jié)果3.設(shè)置Button組件的大小width屬性用于設(shè)置組件的寬度,height屬性用于設(shè)置組件的高度?!纠?0-18】設(shè)置Button組件的大小。fromtkinterimport*fromtkinter.messageboximport*defCallBack():showinfo(title='',message='點(diǎn)我干嘛')win=Tk()#創(chuàng)建窗口對(duì)象b=Button(win,text='點(diǎn)我啊',command=CallBack,width=100,height=50)#創(chuàng)建Button組件b.pack()#顯示Button組件【例10-18】運(yùn)行結(jié)果其他常用的Button組件屬性屬
性說(shuō)
明bitmap指定按鈕上顯示的位圖compound指定文本與圖像如何在Label上顯示,缺省為None。
當(dāng)指定image/bitmap時(shí),文本(text)將被覆蓋,只顯示圖像??梢允褂玫闹等缦拢?/p>
left:圖像居左
right:圖像居右
top:圖像居上
bottom:圖像居下
center:文字覆蓋在圖像上wraplength指定多少單位后開始換行,用于多行顯示文本bg設(shè)置背景顏色fg設(shè)置前景顏色state設(shè)置組件狀態(tài)??梢匀≈禐檎#∟ORMAL)、激活(ACTIVE)和禁用(DISABLED)bd設(shè)置按鈕的邊框大小;缺省為1或2個(gè)像素【例10-19】設(shè)置Button組件的邊框大小和狀態(tài)fromtkinterimport*fromtkinter.messageboximport*win=Tk()#創(chuàng)建窗口對(duì)象b1=Button(win,text='粗邊框的按鈕',bd=5)b1.pack()#顯示Button組件b2=Button(win,text='不能點(diǎn)擊的按鈕',state=DISABLED)b2.pack()#顯示Button組件【例10-19】運(yùn)行結(jié)果10.1.5Canvas畫布組件Canvas是一個(gè)長(zhǎng)方形的面積,它可以定義一個(gè)畫布,然后在畫布中畫圖。1.創(chuàng)建和顯示Canvas對(duì)象可以使用下面的方法創(chuàng)建一個(gè)Canvas對(duì)象。Canvas對(duì)象=Canvas(父窗口,選項(xiàng),...)顯示Canvas對(duì)象的方法如下:Canvas對(duì)象.pack()創(chuàng)建Canvas對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明bd指定畫布的邊框?qū)挾?,單位是像素bg指定畫布的背景顏色confine指定畫布在滾動(dòng)區(qū)域外是否可以滾動(dòng)。默認(rèn)為True,表示不能滾動(dòng)cursor指定畫布中的鼠標(biāo)指針,例如arrow,circle,dotheight指定畫布的高度highlightcolor選中畫布時(shí)的背景色relief指定畫布的邊框樣式,可選值包括SUNKEN,RAISED,GROOVE,andRIDGEscrollregion指定畫布的滾動(dòng)區(qū)域的元組(w,n,e,s)width指定畫布的寬度【例10-20】創(chuàng)建一個(gè)紅色背景、寬為200、高為100的Canvas畫布fromtkinterimport*root=Tk()cv=Canvas(root,bg='red',width=200,height=100)cv.pack()root.mainloop()【例10-20】運(yùn)行結(jié)果2.繪制線條使用create_line()函數(shù)可以創(chuàng)建一個(gè)線條對(duì)象,具體語(yǔ)法如下:line=canvas.create_line(x0,y0,x1,y1,...,xn,yn,選項(xiàng))參數(shù)x0,y0,x1,y1,...,xn,yn是線段的端點(diǎn)。創(chuàng)建矩形對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明width指定線段的寬度arrow指定直線是否使用箭頭,可選值如下:
'none',沒(méi)有箭頭
'first',起點(diǎn)有箭頭
'last',終點(diǎn)有箭頭
'both',兩端都有箭頭arrowshape設(shè)置箭頭的形狀,由3個(gè)整數(shù)構(gòu)成,分別代表填充長(zhǎng)度、箭頭長(zhǎng)度和箭頭寬度。例如,arrowshape='404010'fill指定線段的顏色dash指定線段為虛線【例10-21】繪制直線。起點(diǎn)坐標(biāo)為(10,10)、終點(diǎn)坐標(biāo)為(100,80)。直線寬度為2,線段為虛線fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_line(10,10,100,80,width=2,dash=7)cv.pack()root.mainloop()【例10-22】設(shè)置連接樣式的實(shí)例fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_line(10,10,100,10,arrow='none')cv.create_line(10,20,100,20,arrow='first')cv.create_line(10,30,100,30,arrow='last')cv.create_line(10,40,100,40,arrow='both')cv.pack()3.繪制矩形使用create_rectangle()函數(shù)可以創(chuàng)建一個(gè)矩形對(duì)象,具體語(yǔ)法如下:Canvas對(duì)象.create_rectangle(矩形左上角的x坐標(biāo),矩形左上角的y坐標(biāo),矩形右下角的x坐標(biāo),矩形右下角的y坐標(biāo),選項(xiàng),...)創(chuàng)建矩形對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明outline指定邊框顏色fill指定填充顏色width指定邊框的寬度dash指定邊框?yàn)樘摼€stipple使用指定自定義畫刷填充矩形【例10-23】繪制一個(gè)紅色填充、藍(lán)色邊框的矩形,邊框?qū)挾葹?。矩形左上角坐標(biāo)為(10,10)、右下角坐標(biāo)為(100,80)fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_rectangle(10,10,100,80,outline='blue',fill='red',width=2)cv.pack()root.mainloop()【例10-23】運(yùn)行結(jié)果
【例10-24】繪制一個(gè)邊框?yàn)樘摼€的矩形fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_rectangle(10,10,100,80,outline='blue',fill='white',width=2,dash=7)cv.pack()root.mainloop()【例10-25】繪制一個(gè)使用自定義畫刷填充的矩形fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_rectangle(10,10,100,80,outline='blue',fill='red',width=2,stipple='gray12',)cv.pack()root.mainloop()4.繪制弧使用create_arc()函數(shù)可以創(chuàng)建一個(gè)弧對(duì)象,可以是一個(gè)和弦、餅圖扇區(qū)或者一個(gè)簡(jiǎn)單的弧,具體語(yǔ)法如下:Canvas對(duì)象.create_arc(弧外框矩形左上角的x坐標(biāo),弧外框矩形左上角的y坐標(biāo),弧外框矩形右下角的x坐標(biāo),弧外框矩形右下角的y坐標(biāo),選項(xiàng),...)創(chuàng)建弧對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明outline指定邊框顏色fill指定填充顏色width指定邊框的寬度start起始弧度extent終止弧度【例10-26】繪制一個(gè)指定30度的弧fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_arc(10,10,100,80,outline='blue',fill='red',width=2,start=0,extent=30)cv.pack()root.mainloop()【例10-26】運(yùn)行結(jié)果【例10-27】繪制一個(gè)圓interimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_arc(10,10,100,100,outline='blue',fill='red',width=2,start=0,extent=359)cv.pack()root.mainloop()5.繪制多邊形使用create_polygon()函數(shù)可以創(chuàng)建一個(gè)多邊形對(duì)象,可以是一個(gè)三角形、矩形或者任意一個(gè)多邊形,具體語(yǔ)法如下:Canvas對(duì)象.create_polygon(頂點(diǎn)1的x坐標(biāo),頂點(diǎn)1的y坐標(biāo),頂點(diǎn)2的x坐標(biāo),頂點(diǎn)2的y坐標(biāo),…,頂點(diǎn)n的x坐標(biāo),頂點(diǎn)n的y坐標(biāo),選項(xiàng),...)創(chuàng)建多邊形對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明outline指定邊框顏色fill指定填充顏色width指定邊框的寬度smooth指定多邊形的平滑程度。等于0表示多邊形的邊是折線。等于1表示多邊形的邊是平滑曲線【例10-28】繪制一個(gè)三角形fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_polygon(100,5,0,80,200,80,outline='blue',fill='red',width=2)cv.pack()root.mainloop()【例10-28】運(yùn)行結(jié)果【例10-29】繪制一個(gè)平滑曲線構(gòu)成的三角形tkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_polygon(100,5,0,80,200,80,outline='blue',fill='red',width=2,smooth=1)cv.pack()root.mainloop()【例10-29】運(yùn)行結(jié)果6.繪制橢圓使用create_oval()函數(shù)可以創(chuàng)建一個(gè)橢圓對(duì)象,具體語(yǔ)法如下:Canvas對(duì)象.create_oval(包裹橢圓的矩形的左上角x坐標(biāo),包裹橢圓的矩形的左上角y坐標(biāo),橢圓的長(zhǎng)度,橢圓的長(zhǎng)度,選項(xiàng),...)創(chuàng)建橢圓對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明outline指定邊框顏色fill指定填充顏色width指定邊框的寬度【例10-30】繪制一個(gè)長(zhǎng)100、寬80的橢圓fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_oval(10,10,100,50,outline='blue',fill='red',width=2)cv.pack()root.mainloop()【例10-30】運(yùn)行結(jié)果【例10-31】繪制一個(gè)半徑為100的圓形fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_oval(10,10,100,100,outline='blue',fill='red',width=2)cv.pack()root.mainloop()【例10-31】運(yùn)行結(jié)果7.繪制文字使用create_text()函數(shù)可以創(chuàng)建一個(gè)文字對(duì)象,具體語(yǔ)法如下:文字對(duì)象=Canvas對(duì)象.create_text((文本左上角的x坐標(biāo),文本左上角的y坐標(biāo)),選項(xiàng),...)創(chuàng)建文字對(duì)象時(shí)的常用選項(xiàng)屬
性說(shuō)
明text文字對(duì)象的文本內(nèi)容fill指定文字顏色anchor控制文字對(duì)象的位置,'w'表示左對(duì)齊,'e'表示右對(duì)齊,'n'表示頂對(duì)齊,'s'表示底對(duì)齊,'nw'表示左上對(duì)齊,'sw'表示左下對(duì)齊,'se'表示右下對(duì)齊,'ne'表示右上對(duì)齊,'center'表示居中對(duì)齊。默認(rèn)值為'center'justify設(shè)置文字對(duì)象中文本的對(duì)齊方式。'left'表示左對(duì)齊,'right'表示右對(duì)齊,'center'表示居中對(duì)齊。默認(rèn)值為'center'【例10-32】繪制一段文字fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)cv.create_text((10,10),text='HelloPython',fill='red',anchor='nw')cv.create_text((10,20),text=你好,Python!',fill='blue',anchor='se')cv.pack()root.mainloop()【例10-32】運(yùn)行結(jié)果select_from()函數(shù)和select_to()函數(shù)使用select_from()函數(shù)和select_to()函數(shù)可以選擇文字對(duì)象的一部分。select_from()函數(shù)用于指定選中文本的起始位置,具體用法如下:Canvas對(duì)象.select_from(文字對(duì)象,選中文本的起始位置)select_to()函數(shù)用于指定選中文本的結(jié)束位置,具體用法如下:Canvas對(duì)象.select_from(文字對(duì)象,選中文本的結(jié)束位置)【例10-33】選中文字的例子fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)txt=cv.create_text((10,10),text='HelloPython',fill='red',anchor='nw')cv.select_from(txt,6)cv.select_to(txt,11)cv.pack()root.mainloop()【例10-33】運(yùn)行結(jié)果8.繪制圖像使用create_bitmap()函數(shù)可以繪制Python內(nèi)置的位圖,具體方法如下:Canvas對(duì)象.create_bitmap((位圖左上角的x坐標(biāo),位圖左上角的y坐標(biāo)),bitmap=位圖字符串)【例10-34】繪制4個(gè)Python內(nèi)置的位圖fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)d={1:'error',2:'info',3:'question',4:'hourglass'}forind:cv.create_bitmap((20*i,20*i),bitmap=d[i])cv.pack()root.mainloop()【例10-34】運(yùn)行結(jié)果【例10-35】在窗口中繪制Python圖標(biāo)fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)img=PhotoImage(file='C:\\Python34\\Lib\\idlelib\\Icons\\python.gif')cv.create_bitmap((80,20*i),image=img)cv.pack()root.mainloop()【例10-35】運(yùn)行結(jié)果9.修改圖形對(duì)象的坐標(biāo)使用coords()函數(shù)可以修改圖形對(duì)象的坐標(biāo),具體方法如下:Canvas對(duì)象.coords(圖形對(duì)象,(圖形左上角的x坐標(biāo),圖形左上角的y坐標(biāo),圖形右下角的x坐標(biāo),圖形右下角的y坐標(biāo)))【例10-36】修改一個(gè)矩形對(duì)象的坐標(biāo)fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)rt=cv.create_rectangle(10,10,110,110,outline='red',stipple='gray12',fill='green')cv.pack()cv.coords(rt,(40,40,200,100))root.mainloop()【例10-36】運(yùn)行結(jié)果如果沒(méi)有cv.coords()語(yǔ)句,則【例10-36】的運(yùn)行結(jié)果如下左圖所示。使用cv.coords()語(yǔ)句后的運(yùn)行結(jié)果如下右圖所示。10.移動(dòng)指定圖形對(duì)象使用move()函數(shù)可以修改圖形對(duì)象的坐標(biāo),具體方法如下:Canvas對(duì)象.move(圖形對(duì)象,x坐標(biāo)偏移量,y坐標(biāo)偏移量)【例10-37】移動(dòng)一個(gè)矩形對(duì)象fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)rt1=cv.create_rectangle(10,10,110,110,outline='red',stipple='gray12',fill='green')cv.pack()rt2=cv.create_rectangle(10,10,110,110,outline='blue')cv.move(rt1,20,-10)cv.pack()root.mainloop()沒(méi)有cv.coords()語(yǔ)句時(shí)【例10-37】運(yùn)行結(jié)果11.刪除圖形對(duì)象使用delete()函數(shù)可以刪除圖形對(duì)象,具體方法如下:Canvas對(duì)象.delete(圖形對(duì)象)【例10-38】刪除一個(gè)矩形對(duì)象fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=100)rt1=cv.create_rectangle(10,10,110,110,outline='red',stipple='gray12',fill='green')cv.pack()rt2=cv.create_rectangle(10,10,110,110,outline='blue')cv.delete(rt1)cv.pack()root.mainloop()【例10-38】運(yùn)行結(jié)果12.縮放圖形對(duì)象使用scale()函數(shù)可以縮放圖形對(duì)象,具體方法如下:Canvas對(duì)象.scale(圖形對(duì)象,x軸偏移量,y軸偏移量,x軸縮放比例,y軸縮放比例)【例10-39】縮放一個(gè)矩形對(duì)象fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=300)rt1=cv.create_rectangle(10,10,110,110,outline='red',stipple='gray12',fill='green')cv.scale(rt1,0,0,1,2)cv.pack()root.mainloop()【例10-39】運(yùn)行結(jié)果13.為圖形對(duì)象指定標(biāo)記(tag)在創(chuàng)建圖形對(duì)象時(shí)可以使用屬性tags設(shè)置圖形對(duì)象的標(biāo)記(tag),例如:rt=cv.create_rectangle(10,10,110,110,tags='r1')上面的語(yǔ)句指定矩形對(duì)象rt具有一個(gè)tagr1。也可以同時(shí)設(shè)置多個(gè)標(biāo)記(tag),例如:rt=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))find_withtag()函數(shù)使用find_withtag()函數(shù)可以獲取到指定tag的圖形對(duì)象,然后設(shè)置圖形對(duì)象的屬性。find_withtag()函數(shù)的語(yǔ)法如下:Canvas對(duì)象.find_withtag(tag名)find_withtag()函數(shù)返回一個(gè)圖形對(duì)象數(shù)組,其中包含所有具有tag名的圖形對(duì)象。使用find_withtag()函數(shù)可以設(shè)置圖形對(duì)象的屬性,語(yǔ)法如下:Canvas對(duì)象.find_withtag(圖形對(duì)象,屬性1=值1,屬性2=值2……)【例10-40】使用屬性tags設(shè)置圖形對(duì)象標(biāo)記的例子fromtkinterimport*root=Tk()cv=Canvas(root,bg='white',width=200,height=200)rt=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))cv.pack()cv.create_rectangle(20,20,80,80,tags='r3')foritemincv.find_withtag('r3'):cv.itemconfig(item,outline='blue')【例10-40】運(yùn)行結(jié)果10.1.6Checkbutton組件Checkbutton組件用于在窗口中顯示復(fù)選框。多選按鈕有選中(On)和未選中(Off)2種狀態(tài)。1.創(chuàng)建和顯示Button對(duì)象創(chuàng)建Checkbutton對(duì)象的基本方法如下:Checkbutton對(duì)象=Checkbutton(TkinterWindows窗口對(duì)象,text=Checkbutton組件顯示的文本,command=單擊Checkbutton按鈕所調(diào)用的回調(diào)函數(shù))顯示Checkbutton對(duì)象的方法如下:Checkbutton對(duì)象.pack()【例10-41】使用Checkbutton組件的簡(jiǎn)單例子fromtkinterimport*fromtkinter.messageboximport*defCallBack():showinfo(title='',message='點(diǎn)我干嘛')win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Checkbutton組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題b=Checkbutton(win,text='PythonTkinter',command=CallBack)#創(chuàng)建Checkbutton組件b.pack()#顯示Checkbutton組件win.mainloop()【例10-41】運(yùn)行結(jié)果2.獲取Checkbutton組件是否被選中Checkbutton組件有On和Off兩個(gè)狀態(tài)值,缺省狀態(tài)下On為1,Off為0。也可以使用onvalue設(shè)置Checkbutton組件被選中時(shí)的值,使用offvalue可以設(shè)置Checkbutton組件被取消選中時(shí)的值,例如:Checkbutton(root,text='喜歡',onvalue='1',offvalue='0',command=CallBack).pack()root.mainloop()為了獲取Checkbutton組件是否被選中,需要使用variable屬性為Checkbutton組件指定一個(gè)對(duì)應(yīng)的變量,例如:v=StringVar()Checkbutton(root,variable=v,text='喜歡',onvalue='1',offvalue='0',command=CallBack).pack()root.mainloop()【例10-42】使用一個(gè)Button組件獲取Checkbutton組件的狀態(tài)fromtkinterimport*root=Tk()v=StringVar()defcallCheckbutton():print(v.get())Checkbutton(root,variable=v,text='checkbuttonvalue',onvalue='python',#設(shè)置On的值
offvalue='tkinter'#設(shè)置Off的值
command=callCheckbutton).pack()b=Button(root,text='獲取Checkbutton狀態(tài)',command=callCheckbutton,width=20)#創(chuàng)建Button組件v.set('python')b.pack()#顯示Button組件root.mainloop()10.1.7Entry組件Entry組件用于在窗口中輸入單行文本。1.創(chuàng)建和顯示Entry對(duì)象創(chuàng)建Entry對(duì)象的基本方法如下:Entry對(duì)象=Entry(TkinterWindows窗口對(duì)象)顯示Entry對(duì)象的方法如下:Entry對(duì)象.pack()【例10-43】使用Entry組件的簡(jiǎn)單例子fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Entry組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題entry=Entry(win)#創(chuàng)建Entry組件entry.pack()#顯示Entry組件win.mainloop()【例10-43】運(yùn)行結(jié)果2.獲取Entry組件的內(nèi)容為了獲取Entry組件的內(nèi)容,需要使用textvariable屬性為Entry組件指定一個(gè)對(duì)應(yīng)的變量,例如:e=StringVar()Checkbutton(root,textvariable=e).pack()root.mainloop()然后可以使用e.get()獲取Entry組件的選中內(nèi)容,也可以使用e.set()獲取Entry組件的內(nèi)容?!纠?0-44】使用一個(gè)Button組件獲取Entry組件的內(nèi)容fromtkinterimport*root=Tk()e=StringVar()defcallbutton():print(e.get())root.title("使用Entry組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題entry=Entry(root,textvariable=e).pack()b=Button(root,text='獲取Entry組件的內(nèi)容',command=callbutton,width=20)#創(chuàng)建Button組件e.set('python')b.pack()#顯示Button組件root.mainloop()10.1.8Frame組件Frame組件是框架控件,用于在屏幕上顯示一個(gè)矩形區(qū)域,作為顯示其他組件的容器。1.創(chuàng)建和顯示Frame對(duì)象創(chuàng)建Frame對(duì)象的基本方法如下:Frame對(duì)象=Frame(TkinterWindows窗口對(duì)象,height=高度,width=寬度,bg=背景色)顯示Entry對(duì)象的方法如下:Frame對(duì)象.pack()【例10-45】使用Frame組件的簡(jiǎn)單例子fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Frame組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題fm=Frame(win,height=20,width=400,bg='green')#創(chuàng)建Frame組件fm.pack()#顯示Frame組件win.mainloop()【例10-45】運(yùn)行結(jié)果2.向Frame組件中添加組件在創(chuàng)建組件時(shí)可以指定其容器為Frame組件,例如:Label(Frame對(duì)象,text='Hello').pack()【例10-46】向Frame組件中添加一個(gè)Button組件和一個(gè)Label組件fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Frame組件的例子")#設(shè)置窗口標(biāo)題fm=Frame(win,height=100,width=400,bg='green')#創(chuàng)建Frame組件fm.pack()#顯示Frame組件Label(fm,text='HelloPython').pack()Button(fm,text='OK').pack()win.mainloop()3.LabelFrame組件LabelFrame組件是有標(biāo)題的Frame組件,可以使用text屬性設(shè)置LabelFrame組件的標(biāo)題,方法如下:LabelFrame(TkinterWindows窗口對(duì)象,height=高度,width=寬度,text=標(biāo)題).pack()【例10-47】使用帶標(biāo)題LabelFrame組件fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Frame組件的例子")#設(shè)置窗口標(biāo)題fm=LabelFrame(win,height=100,width=400,text='LabelFrame組件')#創(chuàng)建Frame組件fm.pack()#顯示Frame組件Button(fm,text='OK').pack()win.mainloop()【例10-47】運(yùn)行結(jié)果10.1.9Listbox組件Listbox組件是一個(gè)列表框組件,用于在窗口中顯示多個(gè)文本項(xiàng)。1.創(chuàng)建和顯示Listbox對(duì)象創(chuàng)建Listbox對(duì)象的基本方法如下:Listbox對(duì)象=Listbox(TkinterWindows窗口對(duì)象)顯示Listbox對(duì)象的方法如下:Listbox對(duì)象.pack()可以使用insert()函數(shù)向列表框組件中插入文本項(xiàng),方法如下:Listbox對(duì)象.insert(index,item)index,插入文本項(xiàng)的位置,如果在尾部插入文本項(xiàng),則可以使用END;如果在當(dāng)前選中處插入文本項(xiàng),則可以使用ACTIVE。item,插入的文本項(xiàng)?!纠?0-48】使用Listbox組件的簡(jiǎn)單例子fromtkinterimport*root=Tk()lb=Listbox(root)foritemin['北京','天津','上海']:lb.insert(END,item)lb.pack()root.mainloop()【例10-48】運(yùn)行結(jié)果2.設(shè)置多選的列表框?qū)electmode屬性設(shè)置為MULTIPLE,可以設(shè)置多選的列表框?!纠?0-49】設(shè)置多選的列表框fromtkinterimport*root=Tk()lb=Listbox(root,selectmode=MULTIPLE)foritemin['北京','天津','上海']:lb.insert(END,item)lb.pack()root.mainloop()3.獲取Listbox組件的內(nèi)容為了獲取Listbox組件的內(nèi)容,需要使用listvariable屬性為L(zhǎng)istbox組件指定一個(gè)對(duì)應(yīng)的變量,例如:l=StringVar()Listbox(root,listvariable=l).pack()root.mainloop()之后就可以使用e.get()獲取Listbox組件中的內(nèi)容了?!纠?0-50】使用一個(gè)Button組件獲取Listbox組件的內(nèi)容fromtkinterimport*root=Tk()#將一字符串與Listbox的值綁定l=StringVar()defcallbutton():print(l.get())root.title("使用Entry組件的簡(jiǎn)單例子")
#設(shè)置窗口標(biāo)題lb=Listbox(root,listvariable=l)foritemin['北京','天津','上海']:lb.insert(END,item)lb.pack()b=Button(root,text='獲取Listbox組件的內(nèi)容',command=callbutton,width=20)
#創(chuàng)建Button組件b.pack()#顯示Button組件root.mainloop()10.1.10Menu組件Menu組件是一個(gè)菜單組件,用于在窗口中顯示菜單條和下拉菜單。1.創(chuàng)建和顯示Menu對(duì)象創(chuàng)建Menu對(duì)象的基本方法如下:Menu對(duì)象=Menu(TkinterWindows窗口對(duì)象)將Menu對(duì)象顯示在窗口中的方法如下:TkinterWindows窗口對(duì)象['menu']=menubarTkinterWindows窗口對(duì)象.mainloop()可以使用add_command()函數(shù)向Menu組件中插入菜單文本項(xiàng),方法如下:Menu對(duì)象.add_command(label
=
菜單文本,command
=
菜單命令函數(shù))【例10-51】使用Menu組件的簡(jiǎn)單例子fromtkinterimport*root=Tk()defhello():print("I’mamenu')m=Menu(root)foritemin['系統(tǒng)','操作','幫助']:m.add_command(label=item,command=hello)root['menu']=mroot.mainloop()2.添加下拉菜單前面介紹的Menu組件只創(chuàng)建了主菜單,默認(rèn)情況并不包含下拉菜單。可以將一個(gè)Menu組件作為另一個(gè)Menu組件的下拉菜單,方法如下:Menu對(duì)象1.add_cascade(label=菜單文本,menu=Menu對(duì)象2)上面的語(yǔ)句將Menu對(duì)象2設(shè)置為Menu對(duì)象1的下拉菜單。在創(chuàng)建Menu對(duì)象2時(shí)也要指定它是Menu對(duì)象1的子菜單,方法如下:Menu對(duì)象2=Menu(Menu對(duì)象1)【例10-52】使用add_cascade()函數(shù)添加下拉菜單fromtkinterimport*defhello():print("I’mamenu")root=Tk()m=Menu(root)filemenu=Menu(m)foritemin['打開','關(guān)閉','退出']:filemenu.add_command(label=item,command=hello)m.add_cascade(label='文件',menu=filemenu)root['menu']=mroot.mainloop()【例10-52】運(yùn)行結(jié)果3.在菜單中添加復(fù)選框使用add_checkbutton()可以在菜單中添加復(fù)選框,方法如下:菜單對(duì)象.add_checkbutton(label=復(fù)選框的顯示文本,command=菜單命令函數(shù),variable=與復(fù)選框綁定的變量)【例10-53】在文件下拉菜單中添加復(fù)選框“自動(dòng)保存”fromtkinterimport*defhello():print(v.get())root=Tk()v=StringVar()m=Menu(root)filemenu=Menu(m)foritemin['打開','關(guān)閉','退出']:filemenu.add_command(label=item,command=hello)m.add_cascade(label='文件',menu=filemenu)filemenu.add_checkbutton(label='自動(dòng)保存',command=hello,variable=v)root['menu']=mroot.mainloop()【例10-53】運(yùn)行結(jié)果4.在菜單中添加單選按鈕使用add_radiobutton()可以在菜單中添加單選按鈕,方法如下:菜單對(duì)象.add_radiobutton(label=單選按鈕的顯示文本,command=菜單命令函數(shù),variable=與單選按鈕綁定的變量)【例10-54】添加一個(gè)“選擇語(yǔ)言”下拉菜單,在“選擇語(yǔ)言”下拉菜單中添加一組單選按鈕,用于選擇語(yǔ)言
fromtkinterimport*defhello():print(v.get())root=Tk()v=StringVar()m=Menu(root)filemenu=Menu(m)filemenu.add_command(label='打開',command=hello)filemenu.add_command(label='關(guān)閉',command=hello)filemenu.add_separator()filemenu.add_command(label='退出',command=hello)m.add_cascade(label='文件',menu=filemenu)root['menu']=mroot.mainloop()【例10-54】運(yùn)行結(jié)果5.在菜單中的當(dāng)前位置添加分隔符使用add_separator()可以在菜單中添加分隔符,方法如下:菜單對(duì)象.add_separator()【例10-55】添加一個(gè)“文件”下拉菜單,在下拉菜單中“退出”菜單項(xiàng)上面添加添加分隔符fromtkinterimport*defhello():print(v.get())root=Tk()v=StringVar()m=Menu(root)filemenu=Menu(m)filemenu.add_command(label='打開',command=hello)filemenu.add_command(label='關(guān)閉',command=hello)filemenu.add_separator()filemenu.add_command(label='退出',command=hello)m.add_cascade(label='文件',menu=filemenu)root['menu']=mroot.mainloop()【例10-55】運(yùn)行結(jié)果10.1.11Radiobutton組件Radiobutton組件用于在窗口中顯示單選按鈕。同一組單選按鈕內(nèi)只能有一個(gè)單選按鈕被選中,也就是說(shuō),選中一個(gè)單選按鈕,則組內(nèi)其他單選按鈕會(huì)自動(dòng)被取消選中。1.創(chuàng)建和顯示Radiobutton對(duì)象創(chuàng)建Radiobutton對(duì)象的基本方法如下:Radiobutton對(duì)象=Radiobutton(TkinterWindows窗口對(duì)象,text=Radiobutton組件顯示的文本)顯示Radiobutton對(duì)象的方法如下:Radiobutton對(duì)象.pack()【例10-56】使用Radiobutton組件的簡(jiǎn)單例子fromtkinterimport*win=Tk()#創(chuàng)建窗口對(duì)象win.title("使用Radiobutton組件的簡(jiǎn)單例子")#設(shè)置窗口標(biāo)題r1=Radiobutton(win,text='男')#創(chuàng)建Radiobutton組件r1.pack()#顯示Radiobutton組件r2=Radiobutton(win,text='女')#創(chuàng)建Radiobutton組件r2.pack()#顯示Radiobutton組件win.mainloop()【例10-56】運(yùn)行結(jié)果2.創(chuàng)建Radiobutton組可以使用variable屬性為Radiobutton組件指定一個(gè)對(duì)應(yīng)的變量。如果將多個(gè)Radiobutton組件綁定到同一個(gè)變量,則這些Radiobutton組件屬于一個(gè)分組。分組后需要使用value設(shè)置每個(gè)Radiobutton組件的值,以標(biāo)示該項(xiàng)目是否被選中?!纠?0-57】為例10-56中定義的Radiobutton組件創(chuàng)建組fromtkinterimport*w
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備融資租賃合同2025年保密協(xié)議書
- 智能家居安裝施工協(xié)議2025
- 2025年銀行柜臺(tái)服務(wù)與客戶關(guān)系管理手冊(cè)
- 2025年醫(yī)療廢物處理安全指南
- 2026年虛擬主機(jī)托管合同協(xié)議
- 2026年鍛件出口代理合同協(xié)議
- (二模)遵義市2026屆高三年級(jí)第二次適應(yīng)性考試化學(xué)試卷(含標(biāo)準(zhǔn)答案)
- 2025-2026學(xué)年第一學(xué)期XX市第一中學(xué)副校長(zhǎng)述職報(bào)告:分管教學(xué)與德育工作履職情況
- 員福險(xiǎn)培訓(xùn)教學(xué)課件
- 塞塊量具培訓(xùn)課件
- 百千萬(wàn)工程行動(dòng)方案(3篇)
- 山洪災(zāi)害監(jiān)理工作報(bào)告
- 數(shù)字推理試題及答案下載
- 學(xué)?!暗谝蛔h題”學(xué)習(xí)制度
- 運(yùn)輸管理實(shí)務(wù)(第二版)李佑珍課件第6章 集裝箱多式聯(lián)運(yùn)學(xué)習(xí)資料
- 水泵維修更換申請(qǐng)報(bào)告
- 機(jī)械設(shè)備運(yùn)輸合同
- 《分布式光伏并網(wǎng)啟動(dòng)方案》
- 酒店委托管理合同范本
- 5.第五章-透鏡曲率與厚度
- 抖音賬號(hào)運(yùn)營(yíng)服務(wù)抖音賬號(hào)運(yùn)營(yíng)方案
評(píng)論
0/150
提交評(píng)論