Python中用戶界面設計(GUI)

1.概述:

       圖形用戶界面是一種人與計算機通信的界面顯示格式,允許用戶使用鼠標等輸入設備操縱屏幕上的圖標或菜單選項,已選擇命令調用文件過執行其它一些日常任務與通過鍵盤輸入文本或字符命令來完成例行任務的字符界面相比,圖形界面用戶界面有許多優點,圖形用戶界面由窗口,下拉菜單對話框及其相應的控制機制構成,在各種新式應用程序中都是標準化的,即相擁同的操作總是以同樣的方式來完成。在圖形用戶界面,用戶看到和操作的都是圖形對象,應用的式計算及圖形學的技術,GUI的廣泛應用是當今計算機發展的重大成就之一,它極大地方便了非專業用戶的使用,人們從此不再需要死記硬背大量的命令。

2.認識tkinter:

       tkinter是python默認的GUI,它簡單易用、可移植性良好,常被應用於小型圖形界面應用程序的快速開發。
       tkinter可用於創建窗口、菜單、按鈕、文本框等組件。是python的內置模塊,使用時需提前導入。導入方式一:import tkinter;方式二:from tkinter import *

       開發一個簡單的tkinter程序
       (1)創建根窗口:搭建圖形界面之前,需要先創建一個根窗口(也稱主窗口)。使用tkinter模塊中TK類的構造方法可以創建根窗口對象。如果根窗口對象名爲root,則令其等於Tk(),注意此時T是大寫的。實現代碼爲:root=Tk()
       (2)進入消息主循環:爲保證能隨時接收用戶消息,跟窗口應進入消息循環,使GUI程序總是處於運行狀態。具體實現代碼:root.mainloop()
       (3)總代碼如下:

from tkinter import *
root=Tk()

root.mainloop()

運行結果如下圖:
在這裏插入圖片描述
這樣我們就創建了一個目前什麼什麼內容都沒有的主界面,如果想調製頁面大小見下方代碼:

from tkinter import *
root=Tk()
root.geometry("400x400+200+200")#對應的格式爲寬乘以高加上水平偏移量加上垂直偏移量


root.mainloop()

運行結果如圖:
在這裏插入圖片描述
3.標籤組件

(1)Label組件用於顯示信息。Lable (master=None,cnf={},**kw)其中,kw參數是用來自定義label組件的鍵值對。
常用屬性如下圖:
在這裏插入圖片描述
具體代碼如下:

from tkinter import *
root=Tk()
#定義lable對象用Lable方法,順序分別爲窗口對象,顯示文本python程序設計,字體內型爲華文行楷,大小爲20
#字體顏色爲綠色,背景顏色爲粉色
label=Label(root,text="Python程序設計",font=("華文行楷",20),fg="green",bg="pink")

label.pack()#調用pack方法將label標籤顯示在主界面,後面也會用到就不一一解釋了


root.mainloop()

運行結果如下圖:
在這裏插入圖片描述
4.Button屬性

(1)Button組件可展示文本或圖片並與用戶交互,使用Button類構造方法Button()可創建按鈕對象。
(2)Button組件的常用屬性及其說明如下表所示:
在這裏插入圖片描述
Button組件在被創建時可使用command屬性設置回調函數與按鈕綁定,如此若用戶對按鈕進行操作,相應操作將被啓動。具體操作如下:

from tkinter import *
root=Tk()
def callback():
    print('**我想去看看**')
button=Button(root,text='**世界那麼大**',command=callback)
button.pack()
root.mainloop()

按鈕爲世界那麼大,當用戶對按鈕進行操作時,相應操作(也就是函數裏面的內容將被啓動)就會運行函數裏面的內容然後輸出** 我想去看看**,運行結果如下圖:
在這裏插入圖片描述
點擊一下按鈕就會出現一行。
5.文本框Entry

(1)Entry用於接收單行文本信息,使用Entry類的構造方法Entry()可創建文本框對象。Entry組件的常用屬性及說明如下表:
在這裏插入圖片描述
具體的實現如下:

from tkinter import *
root=Tk()
data=StringVar()#創建可編數據data
label=Label(root,textvariable=data)#創建label組件並將其與data關聯
label.pack()
entry =Entry(root,textvariable=data)#創建labal組件並將其與data關聯
entry.pack()
root.mainloop()

運行結果如下圖:
在這裏插入圖片描述
當我在文本框中輸入什麼內容,我圖中圈的地方就會實時的顯示什麼內容。
6.複選框Checkbutton

(1)使用構造方法Checkbutton()可以創建複選框組件,複選框組件中包含多個選項,支持多選。
(2)Checkbutton的常用選項如下表:
在這裏插入圖片描述具體操作如下:

from tkinter import *
root=Tk()
label=Label(root,text="請選擇您愛好的球類運動:")
label.pack()
check_1=Checkbutton(root,text="足球",height=2,width=20,background="green").pack()
check_2=Checkbutton(root,text="籃球",height=2,width=20,background="yellow").pack()
check_3=Checkbutton(root,text="排球",height=2,width=20,background="pink").pack()
check_4=Checkbutton(root,text="羽毛球",height=2,width=20,background="blue").pack()
root.mainloop()

運行結果如下圖:
在這裏插入圖片描述
7.單選框Radiobutton

(1)用於選中一組選項中的一個,與Checkbutton的區別在於一個選項被選中後就會自動清除其它選項的選中狀態(說白了就是爲了最終選中的只有一個選項)
(2)Radiobutton的常用屬性及說明如下表:
在這裏插入圖片描述
具體操作如下圖:

from tkinter import *
root=Tk()#創建主窗口
v=IntVar()#指定單選按鈕選中時的變量
langue=[('python',1),('VC++',2),('Java',3),('R',4)]
label=Label (root,text="請選擇你最喜歡的編程語言:").pack()
for lang,num in langue:
    if(num==1):
        b=Radiobutton(root,text=lang,variable=v,value=num,background="green")
    elif(num==2):
        b=Radiobutton(root,text=lang,variable=v,value=num,background="red")
    elif(num==3):
        b=Radiobutton(root,text=lang,variable=v,value=num,background="orange")
    else:
        b=Radiobutton(root,text=lang,variable=v,value=num,background="green")
    b.pack(anchor=W)#這裏是爲了排版好看
root.mainloop()

運行結果如下圖:
在這裏插入圖片描述
8.消息對話框(messagebox)

(1)messagebox時候tkinter的一個子模塊,它用來顯示文本信息、提供警告信息或錯誤信息。
類型有如下圖所示:
在這裏插入圖片描述
使用以上消息框的同名法法可以創建相應消息框,這些消息框方法有相同的語法格式:messagebox.FunctionName(title,message[,options])
其中:
title是指定消息對話框的標題。
message是消息框的文本消息。
option 可以調整外觀的選項。
具體操作如下:

from tkinter import *
from tkinter.messagebox import *#導入messagebox子模塊
root=Tk()#創建主窗口
def hello():
    showinfo("Hello","人生苦短,我喜歡Pyhon")#上面圖片中有介紹
button=Button(root,text="python程序設計",command=hello).pack()
root.mainloop()

運行結果如下圖:
在這裏插入圖片描述
當點擊按鈕後就會彈出一個消息對話框。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章