真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python圖形用戶界GUI有什么作用

本篇內(nèi)容主要講解“Python圖形用戶界GUI有什么作用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Python圖形用戶界GUI有什么作用”吧!

創(chuàng)新互聯(lián)是一家專業(yè)提供臨汾企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、做網(wǎng)站H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為臨汾眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

在我們平時寫代碼的時候,為了讓程序效果顯得更直觀,我們通常都會給它們套上一層美麗的外衣,這層外衣便是-------GUI,中文名又叫,圖形用戶接口,能起到很好的交互作用。下面我們來著重介紹下Python中自帶的GUI模塊-----tkinter,看看它有哪些豐富的圖形接口吧。

1.安裝并導(dǎo)入

哦,tkinter庫系統(tǒng)自帶,無需安裝,直接導(dǎo)入即可:

import tkinter  as tk  # 因為它比較長,所以給它個簡寫的方式 ,用tk代表它。

2.實例化窗口

root= tk.Tk()            #主窗口 root.title('hello')   #窗口標(biāo)題 root.geometry('400x500')  #窗口尺寸 root.wm_minsize(140, 170) # 設(shè)置窗口最小化大小 root.wm_maxsize(1440, 2800)             # 設(shè)置窗口最大化大小 root.iconbitmap('1.ico')   #窗口圖標(biāo) 必須是ico格式的圖片 root.resizable(width=False, height=True)     # 設(shè)置窗口寬度不可變,高度可變 root.mainloop() #主窗口循環(huán)顯示

 Python圖形用戶界GUI有什么作用

我們的第一個窗口就這樣應(yīng)運而生了,另外它還有許多其它功能,比如:

root.quit()    #退出 root.destroy() #銷毀 root.update() #刷新 可以接收用戶改變程序進(jìn)程 root.update_idletasks()  #刷新 不能接收用戶改變程序進(jìn)程 root.wm_title('i love you')  #最小化顯示字樣 root.configure(background='blue') #背景顏色

下面我們再給它添加點別的部件和功能吧。

3.基本部件

tkinter里面有很多豐富的部件,有標(biāo)簽,文本框,列表框,下拉列表框,多選框,單選框等等,下面我們一起認(rèn)識下它們吧。

一、標(biāo)簽

它是tkinter里面的標(biāo)簽部件,主要用于提示。那么它有哪些有趣的功能呢?一起看一下:

label=tk.Label(root,            text='Hello', #標(biāo)簽內(nèi)文本          bg='red',      #背景顏色          font=('Arial',20), #字體和字體大小          width=10,  #文本寬度          height=5   #文本高度         )

不過我們光這樣標(biāo)簽還不會添加到我們的主界面中,還得給它進(jìn)行下一步操作:

label.pack() #添加部件到主界面

下面看下效果:

Python圖形用戶界GUI有什么作用

這樣我們就成功將它添加進(jìn)來了,有點丑,等會我們再做修改。大家可以看到現(xiàn)在的標(biāo)簽里的值是靜態(tài)無法修改的,那要是我們想讓它動態(tài)變更了,那我們可以這樣做:

Python圖形用戶界GUI有什么作用

這樣就達(dá)到了修改標(biāo)簽的值的功能。

關(guān)于標(biāo)簽還有許多優(yōu)秀的方法,比如說:

label.configure(text) #重新設(shè)置標(biāo)簽文本 得是text的時候設(shè)置才生效 label.configure(background='blue')  #重新設(shè)置標(biāo)簽背景

標(biāo)簽的屬性總共有下面幾種:

anchor            文本位置; background(bg) 背景色;     foreground(fg)    前景色;     borderwidth(bd)   邊框?qū)挾龋?nbsp;    width         標(biāo)簽寬度;     height        標(biāo)簽高度;     bitmap           標(biāo)簽中的位圖;     font             字體;     image         標(biāo)簽中的圖片;     justify          多行文本的對齊方式;     text       標(biāo)簽中的文本,可以使用'\n'表示換行     textvariable     顯示文本自動更新,與StringVar等配合著用

二、按鈕

按鈕的功能主要是實現(xiàn)點擊功能,比如說確認(rèn),提交操作。那么它有哪些操作呢?

Python圖形用戶界GUI有什么作用

可以看出,成功實現(xiàn)了點擊事件,而且我們可以通過點擊按鈕來改變標(biāo)簽的值,下面來看看:

Python圖形用戶界GUI有什么作用

Python圖形用戶界GUI有什么作用

可以看出,成功的改變了值和背景顏色。大家可能對上圖中的side='left'有點不理解,其實那個就是確定組件位置的,一個左一個右。按鈕還有一個隱藏和顯示的功能也是相當(dāng)好實現(xiàn)的:

button.pack          #顯示 button.pack_forget   #隱藏

關(guān)于button還有以下方法供大家學(xué)習(xí):

anchor         文本位置; background(bg)     按鈕的背景色;   bitmap:        按鈕上顯示的位圖;   borderwidth(bd)按鈕邊框的寬度;   command:     按鈕消息的回調(diào)函數(shù);   cursor:       鼠標(biāo)移動到按鈕上的指針樣式;   font:            按鈕上文本的字體;   foreground(fg) 按鈕的前景色;   height:       按鈕的高度;   image:        按鈕上顯示的圖片;   state:           按鈕的狀態(tài)(disabled);   text:             按鈕上顯示的文本;   width:        按鈕的寬度   padx          設(shè)置文本與按鈕邊框x的距離,還有pady;   activeforeground  按下時前景色   textvariable      可變文本,與StringVar等配合著用

三、文本框,多行文本框

之所以拿來一起講,是因為它們很多參數(shù)都是一樣的,所以沒必要分開講,我們先來說說文本框:

1.文本框

用來接受用戶輸入,常用來登陸賬號和密碼。

Python圖形用戶界GUI有什么作用

可以看到一個顯示為漢字,另一個則是?,這就是它的明文和密文設(shè)置了。我們還可以獲取到它里面的值用來校驗數(shù)據(jù)庫中的信息以便登陸,不過這里我們只把它打印出來即可。

Python圖形用戶界GUI有什么作用

完美將它打印了出來,小伙伴們看到這里是不是可以寫個登陸系統(tǒng)嘞。單行文本框自定義插入值:

e1.insert(index,string) #在指定索引位置插入字符串

2.多行文本框

與文本框不同的是,它可以顯示多行信息,一般用來顯示某些結(jié)果。

Python圖形用戶界GUI有什么作用

可以看到,多行文本就是這樣的,我們可以給它插入文本:

tt.insert('insert','你是豬嗎')  #首行插入 tt.insert('current','我是豬')   #當(dāng)前插入 tt.insert('end','123')         #末尾插入

 Python圖形用戶界GUI有什么作用

除了插入還可以刪除:

tt.delete('1.0',tk.END) #刪除文本框所有內(nèi)容

另外文本框有時候需要實時更新內(nèi)容,所以還有一個方法:

tt.update()  #更新多行文本框內(nèi)容

 Python圖形用戶界GUI有什么作用

除此之外,我們還可以在多行文本框中添加其它組件實現(xiàn)一些功能。

1.記住密碼功能

Python圖形用戶界GUI有什么作用

2.照片查看器

我們需要認(rèn)識一個新的方法,它叫PhotoImage。它的設(shè)計比較古怪,個人覺得,因為它只支持gif圖片。

Python圖形用戶界GUI有什么作用

通過上面的設(shè)置創(chuàng)建了一個window執(zhí)行函數(shù),在實際應(yīng)用中可以用它來實現(xiàn)記住密碼和查看gif照片的功能。

關(guān)于文本框和多行文本框就說到這里,它們還有很多其它的方法:

指定位置插入值:

tt.mark_set("here","3.2") #建立mark,相當(dāng)于索引,第三行第二列 tt.insert('here',"hello") #插入hello tt.mark_unset('here') #刪除mark

高亮顯示文本:

tt.tag_add('tag1','1.3','2.1','2.2') #設(shè)置要設(shè)置樣式的區(qū)域 tt.tag_config("tag1",background="green",foreground="blue") tt.tag_config("tag2",background="blue",foreground="red")#如設(shè)置多個樣式則新樣式覆蓋舊樣式 tt.tag_lower("tag1")  #可通過tagraise()和tag_lower()方法來提高和降低某個Tag的優(yōu)先級

獲取多行文本框的值:

tt.get('0.0','end')

文本綁定鼠標(biāo)事件:

tt.tag_add("link","2.1","2.5") tt.tag_config("link",foreground="blue",underline=True) #選中的內(nèi)容添加下劃線 藍(lán)色背景顏色 def show_1(event):      tt.config(cursor="arrow") #鼠標(biāo)箭頭型 def show_2(event):      tt.config(cursor="xterm")  #鼠標(biāo)I型 def click(event):      print('我被單擊了') tt.tag_bind("link","",show_1) tt.tag_bind("link","",show_2) tt.tag_bind("link","",click)

 Python圖形用戶界GUI有什么作用

恢復(fù),撤銷:

tt.edit_undo() #撤銷 tt.editredo()  #恢復(fù)

更多精彩內(nèi)容:

background(bg)    文本框背景色; foreground(fg)        前景色; selectbackground  選定文本背景色; selectforeground  選定文本前景色; borderwidth(bd)      文本框邊框?qū)挾龋?nbsp;font                 字體; show              文本框顯示的字符,若為*,表示文本框為密碼框; state             狀態(tài); width          文本框?qū)挾?nbsp;textvariable      可變文本,與StringVar等配合著用

四、單選框,復(fù)選框

這個我們平時勾選答案是單選還是多選時很常見。下面讓我們來看看吧:

1.單選框Radiobutton

Python圖形用戶界GUI有什么作用

2.復(fù)選框Checkbutton

Python圖形用戶界GUI有什么作用

可以看出,做出來了,不過有點復(fù)雜,因為沒有善用循環(huán),下面給出一種簡單的寫法:

Python圖形用戶界GUI有什么作用

可以看到,幾行代碼就把四個控件列出來了。關(guān)于單選框多選框還有很多有趣的方法:

anchor         文本位置; background(bg) 背景色; foreground(fg)    前景色; borderwidth       邊框?qū)挾龋?nbsp;width          組件的寬度; height         組件高度; bitmap         組件中的位圖; image          組件中的圖片; font           字體; justify        組件中多行文本的對齊方式; text           指定組件的文本; value          指定組件被選中中關(guān)聯(lián)變量的值; variable          指定組件所關(guān)聯(lián)的變量; indicatoron        特殊控制參數(shù),當(dāng)為0時,組件會被繪制成按鈕形式; textvariable       可變文本顯示,與StringVar等配合著用

五、listbox列表

列表常用于選擇選項。

Python圖形用戶界GUI有什么作用

這個比較簡單,沒什么好說的。

六、滑塊條,滾動條

1.滑塊條

一行代碼就能搞定了,也是非常簡單:

Python圖形用戶界GUI有什么作用

默認(rèn)方向為垂直,只需將orient屬性設(shè)為horizontal(tk.HORIZONTAL  )即可,也可設(shè)為垂直:orient="vertical"

2.滾動條

常和其它組件配套使用,比如列表框,多行文本框。安裝滾動條之前需要做兩件事情。

1.指定該組件的yscrollbarcommand參數(shù)為Scrollbar的set()方法

2.指定Scrollbar 的 command 參數(shù)為該組件的 yview() 方法

由于滾動條一般都是垂直方向,所以我們不改動它的方向。

Python圖形用戶界GUI有什么作用

可以看到,我們的滾動條和列表組件產(chǎn)生了聯(lián)系,滾動條滾動列表內(nèi)容相應(yīng)往下翻,如果你要想設(shè)置滾動條的位置,只需:

sl.set(0.5,1) #使?jié)L動條始終保持在中間位置

滾動條和滑塊條一樣,都比較簡單,項目中用的也不是蠻多,總體來說比較簡單的組件。

七、畫布

平時會用于繪制各種曲線和位圖,canvas可以很輕松創(chuàng)建各種有趣的圖形圖像。下面來了解下

#初始化一個200x100的背景顏色為藍(lán)色的形狀 canvas = tk.Canvas(root, bg='blue', height=100, width=200)   #創(chuàng)建一個矩形,背景色為綠色,邊框線顏色為紅色,線寬為2,虛線長度為3,畫刷為gray12, jx=canvas.create_rectangle(100,100,50,50,fill='green',outline='red',width=2,dash=3,stipple = 'gray12')  #繪制弧形 風(fēng)格為pieslice(chord扇形,拋物線arc) 起始角度0 角度偏移量180 hx=canvas.create_arc(50, 100,140, 200,style='pieslice',start=0, extent=180)  #創(chuàng)建直線 坐標(biāo)為100,100的長度為200x200的直線,一頭有箭頭(none無,last尾部,both兩端,箭頭形狀) zx=canvas.create_line(100, 100, 200, 200,arrow='first',arrowshape='30 20 10')   #創(chuàng)建橢圓,背景色為red y=canvas.create_oval(50, 100,140, 200, fill='red')  #創(chuàng)建多邊形 直角三角形 dbx=canvas.create_polygon((150,150,150,200,70,200),fill = 'red')  #創(chuàng)建文字  居中顯示 wz=canvas.create_text((10,10),text = 'Hello Text',anchor ='w') canvas.select_from(wz,3)  # 設(shè)置文本的選中開始位置 canvas.select_to(wz,7)# 設(shè)置文本的選中結(jié)束位置  #創(chuàng)建位圖,類型為error(info信息,question問題,hourglass沙漏) canvas.create_bitmap((40,40),bitmap = 'error')  #創(chuàng)建gif img= tk.PhotoImage(file='1.gif') canvas.create_image(10, 10, anchor='nw', image=img)  #創(chuàng)建組件 bt =tk.Button(canvas,text='hello',command) canvas.create_window((100,100),window=bt,anchor='w')  #將jx移動到另一區(qū)域 cv.coords(jx,(10,10,20,20))  #移動圖形右移20個px,再返回 canvas.move(jx,20,0)  #刪除圖形 canvas.delete(jx)  #添加綁定事件,只有點擊到矩形邊框才有效 canvas.tag_bind('jx','',command) #左鍵為1,右鍵為3,滾輪2

canvas繪圖還是比較強大的,以上的知識點差不多夠平時用了,可以看到:

Python圖形用戶界GUI有什么作用

八、下拉列表框

一般用于某個功能的配套選擇,這個部件在tkinter中的ttk模塊下,和其它的不同,所以我們導(dǎo)入ttk:

#打印下拉列表框的值 from tkinter import  ttk def function(*arg):     print(cb.get()) #獲取下拉列表框的值 cb=ttk.Combobox(root, width=12,state='readonly')#下拉列表框?qū)挾葹?2 只讀 cb['values'] = ('請選擇-----','1','2','3','4') #設(shè)置下拉列表框的內(nèi)容    cb.current(0)    #將當(dāng)前選擇狀態(tài)置為0,也就是第一項 cb.bind("<>",function)  #綁定function函數(shù),然后觸發(fā)事件 cb.pack()

注:下拉列表沒有command參數(shù),但是它可以設(shè)置textvariable進(jìn)行參數(shù)傳遞。

Python圖形用戶界GUI有什么作用

九、菜單欄,菜單按鈕,選項菜單

先說說我們熟知的菜單(Menu),它主要我們?yōu)榱撕喕浖氖褂枚⒌模苊馓砑舆^多的控件。那么它是如何建立的了,請看:

1.下拉菜單

#創(chuàng)建菜單欄 m=tk.Menu(root)  #定義一個父菜單 file=tk.Menu(m,tearoff=False)  #將上面定義的父菜單命名為File,放在菜單欄中 m.add_cascade(label='文件', menu=file)  #在File中加入下拉菜單,并添加對應(yīng)命令操作。 #如果點擊這些選項, 就會觸發(fā)相應(yīng)的功能 file.add_command(label='新建',accelerator='Ctrl+N') file.add_command(label='打開', accelerator='Ctrl+O') file.add_command(label='保存', accelerator='Ctrl+S')  #添加一條分割線 file.add_separator() file.add_command(label='退出',command=root.quit,accelerator='Ctrl+Q')     edit= tk.Menu(m,tearoff=False) m.add_cascade(label='編輯', menu=edit) edit.add_command(label='剪切',accelerator='Ctrl+X') edit.add_command(label='復(fù)制',accelerator='Ctrl+C') edit.add_command(label='粘貼',accelerator='Ctrl+V')   #二級菜單 s= tk.Menu(file,tearoff=False) file.add_cascade(label='導(dǎo)入', menu=s) s.add_command(label="模塊") s.add_command(label="文本文件")  #三級菜單 z=tk.Menu(s,tearoff=False) s.add_cascade(label='圖片',menu=z) z.add_command(label="gif") z.add_command(label="jpg") z.add_command(label="png") z.add_command(label="bmp") root.configure(menu=m)

 Python圖形用戶界GUI有什么作用

2.右鍵彈出菜單

在做這個之前我們要了解鼠標(biāo)綁定事件愛你,因為右鍵彈出需要擊鍵,所以我們需要了解它。

既然是右鍵我們當(dāng)然得綁定右鍵了:

root.bind("",function)

然后我們書寫綁定函數(shù)并把它綁定到當(dāng)前對象中:

def function(event):     m.post(event.x_root, event.y_root)  #可以替換菜單,變?yōu)槠渌藛?,比如說s,z

這樣就實現(xiàn)了右鍵彈出菜單的功能,是不是很簡單了。關(guān)于菜單的操作還有許多,不一一演示,下面請看:

#添加一個子菜單 coption為配置選項 add_cascade(option)  #添加一個切換按鈕 coption為配置選項 add_checkbutton(option)  #添加一個功能按鈕 coption為配置選項 add_command(option)  #添加一個單選按鈕 coption為配置選項 add_radiobutton(option)  #添加一個分割線 add_separator()  #刪除index1 到 index2之間的選項 delete(index1,index2)  #獲取菜單某一項的屬性值 entrycget(index,coption)  #重新配置菜單中某項的屬性 entryconfigure(index,option)  #返回參數(shù)位置對應(yīng)的選項索引 index(i)  #在指定位置插入一個子菜單 insert_cascade(index,option)  #在指定位置插入一個切換按鈕 insert_checkbutton(index,option)  #在指定位置插入一個功能按鈕 insert_command(index,option)  #在指定位置插入一個單選按鈕 insert_radiobutton(index,option)  #在指定位置插入一個分割線 insert_separator(index)  #代碼手動調(diào)用一次某個選項 invoke(index)  #在窗口指定位置彈出菜單 post(x,y)  #獲取某個選項的類型 type(index)  #獲取某個選項距離菜單頂部的偏移量 yposition(n)  #添加一個選項 可以是功能按鈕,切換按鈕,單選按鈕或子菜單,由類型確認(rèn) #類型可選 cascade checkbutton command radiobutton separator add(kind,option)

3.菜單按鈕

它是與菜單相關(guān)聯(lián)的按鈕,可放在任意位置,下面來創(chuàng)建一個看看:

def show(): #觸發(fā)事件     print("hello") mb = tk.Menubutton(root,text="python",relief=tk.RAISED) #菜單按鈕配置 mb.pack() file = tk.Menu(mb,tearoff=0)  #添加菜單 file.add_checkbutton(label="打開",command=show) #添加確認(rèn)按鈕到菜單中 file.add_command(label="保存",command=show) #添加保存命令 file.add_separator() #添加分隔線 file.add_command(label="退出",command=root.quit) #添加退出命令 mb.configure(menu=file)  #將菜單按鈕配置添加到主菜單中

 Python圖形用戶界GUI有什么作用

4.選項菜單

這個組件在一定程度上好比下拉菜單,又如listbox,下面我們來看下吧:

var =tk.StringVar() var.set("編程語言") #設(shè)置菜單初始值 o = tk.OptionMenu(root,var,"python","php","c#","c++") #將菜單選項加入到菜單中去 o.pack()

 Python圖形用戶界GUI有什么作用

是不是覺得菜單比較有趣,通過對菜單的認(rèn)識你也可以做一個記事本或者其它小工具,其它方法如下:

tearoff         分窗,0為在原窗,1為點擊分為兩個窗口,也可以是 True,F(xiàn)alse bg,fg         背景,前景 borderwidth      邊框?qū)挾?nbsp;font              字體 activebackgound  點擊時背景,有activeforeground,activeborderwidth,disabledforeground cursor            選中菜單選項時的光標(biāo)形狀 post               右鍵菜單 selectcolor      選中時背景 takefocus         使用 Tab 鍵獲取按鈕的焦點  title              標(biāo)題 type                類型 relief              樣式"sunken","raised","groove","ridge" "flat"  方法: m.add_cascade      添加子選項 m.add_command      添加命令(label參數(shù)為顯示內(nèi)容) m.add_separator    添加分隔線 m.add_checkbutton  添加確認(rèn)按鈕 delete                刪除

到此,相信大家對“Python圖形用戶界GUI有什么作用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)頁名稱:Python圖形用戶界GUI有什么作用
URL網(wǎng)址:http://weahome.cn/article/ieegsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部