Python圖形界面GUI程序設計

1、GUI是什麼?

圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指採用圖形方式顯示的計算機操作用戶界面。
圖形用戶界面是一種人與計算機通信的界面顯示格式,允許用戶使用鼠標等輸入設備操縱屏幕上的圖標或菜單選項,以選擇命令、調用文件、啓動程序或執行其它一些日常任務。與通過鍵盤輸入文本或字符命令來完成例行任務的字符界面相比,圖形用戶界面有許多優點。圖形用戶界面由窗口、下拉菜單、對話框及其相應的控制機制構成,在各種新式應用程序中都是標準化的,即相同的操作總是以同樣的方式來完成,在圖形用戶界面,用戶看到和操作的都是圖形對象,應用的是計算機圖形學的技術。

2、Python中的GUI編程

Python 提供了多個圖形開發界面的庫,幾個常用 Python GUI 庫如下:
Tkinter: Tkinter 模塊(Tk 接口)是 Python 的標準 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多數的 Unix 平臺下使用,同樣可以應用在 Windows 和 Macintosh 系統裏。Tk8.0 的後續版本可以實現本地窗口風格,並良好地運行在絕大多數平臺中。
wxPython:wxPython 是一款開源軟件,是 Python 語言的一套優秀的 GUI 圖形庫,允許 Python 程序員很方便的創建完整的、功能健全的 GUI 用戶界面。
Jython:Jython 程序可以和 Java 無縫集成。除了一些標準模塊,Jython 使用 Java 的模塊。Jython 幾乎擁有標準的Python 中不依賴於 C 語言的全部模塊。比如,Jython 的用戶界面將使用 Swing,AWT或者 SWT。Jython 可以被動態或靜態地編譯成 Java 字節碼。

3、Tkinter編程

Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 可以快速的創建 GUI 應用程序。由於 Tkinter 是內置到 python 的安裝包中、只要安裝好 Python 之後就能 import Tkinter 庫、而且 IDLE 也是用 Tkinter 編寫而成、對於簡單的圖形界面 Tkinter 還是能應付自如。

4、如何來創建一個GUI程序?

(1)、導入 tkinter 模塊
(2)、創建窗口
(3)、創建控件
(4)、顯示控件和窗口
Eg:

from tkinter import *
#導入模塊
tk_bg = Tk()
#創建窗口
bm=Button()
#創建按鍵控件
bm.pack()
#顯示控件(放在窗口創建的後面)
tk_bg.mainloop()
#顯示窗口(放最下面)

5、畫一個簡單的的窗口

想要在窗口顯示文字,需要調用Label()控件,想要在窗口上顯示按鍵,需要調用Button()控件。

eg:

from tkinter import *
tk_bg = Tk()
tk_bg.title("第一個GUI")
#窗口名稱
lb=Label()
#創建一個輸出框控件
lb["text"]= "Hello World!"
#寫入文本
lb["width"]=100
#設置該控件左右寬度
lb["height"]=10
#設置該控件上下高度
lb.pack()
#顯示控件
bm=Button()
#創建按鍵控件
bm["text"]= "確定"
#寫入文本
bm.pack()
#顯示控件
tk_bg.mainloop()
#顯示窗口

注:TK中的窗口顯示順序默認是自上而下的,先調用pack()的控件會顯示在上面,後調用的會顯示在下面。

6、在窗口顯示圖片。

想要在窗口中顯示圖片,只需要將輸出框控件和圖片關聯就可以了。

eg:

from tkinter import *
#導入模塊
tk_bg = Tk()
#創建窗口
tk_bg.title("毀圖秀秀")
#修改窗口名字
lb1=Label()
#創建一個輸出框控件
w =PhotoImage(file ="123.gif")
#創建一個圖片對象,圖片只能是gif
lb1["image"]=w
#關聯圖片到控件
lb1.pack()
#顯示控件
tk_bg.mainloop()
#顯示窗口

注:圖片文件要和源代碼放在同一個文件夾,否則請使用絕對路徑指定圖片位置。

7、排列控件順序

想要在一行顯示多個控件,需要使用Frame()來集中管理。

eg:

from tkinter import *
#導入模塊
tk_bg = Tk()
#創建窗口
tk_bg.title("閣下的相冊")
#修改窗口名字
fm1 = Frame()
#生成集中管理對象fm1
w1 =PhotoImage(file ="123.gif")
#創建一個圖片對象,圖片只能是gif
Label(fm1,image=w1).pack(side="left")
#創建輸出框控件關聯fm1和w1圖片,控件顯示方式爲最左邊
w2 =PhotoImage(file ="234.gif")
#創建一個圖片對象,圖片只能是gif
Label(fm1,image=w2).pack(side="left")
#創建輸出框控件關聯fm1和w2圖片,控件顯示方式爲最左邊
fm1.pack()
#顯示fm1關聯的所有控件
fm2 = Frame()
#生成集中管理對象fm2
Button(text="可愛",font=("楷體",20)).pack(side="bottom")
#創建按鍵控件關聯fm2,控件顯示方式爲最下方
Button(text="很可愛",font=("楷體",20)).pack(side="bottom")
#創建按鍵控件關聯fm2,控件顯示方式爲最下方
Button(text="非常可愛",font=("楷體",20)).pack(side="bottom")
#創建按鍵控件關聯fm2,控件顯示方式爲最下方
fm2.pack()
#顯示fm2關聯的所有控件
tk_bg.mainloop()
#顯示窗口

注:主義觀察控件的輸出,非常可愛是在最上面的,想一想爲什麼(因爲bottom把最前面的可愛放在了最下面)。side有四種方式 top、bottom、left、right。

以下爲TK的方法和屬性附錄

1、Tkinter組件

Tkinter的提供各種控件,如按鈕,標籤和文本框,一個GUI應用程序中使用。這些控件通常被稱爲控件或者部件。

控件 描述
Button 按鈕控件;在程序中顯示按鈕。
Canvas 畫布控件;顯示圖形元素如線條或文本
Checkbutton 多選框控件;用於在程序中提供多項選擇框
Entry 輸入控件;用於顯示簡單的文本內容
Frame 框架控件;在屏幕上顯示一個矩形區域,多用來作爲容器
Label 標籤控件;可以顯示文本和位圖
Listbox 列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶
Menubutton 菜單按鈕控件,用於顯示菜單項。
Menu 菜單控件;顯示菜單欄,下拉菜單和彈出菜單
Message 消息控件;用來顯示多行文本,與label比較類似
Radiobutton 單選按鈕控件;顯示一個單選的按鈕狀態
Scale 範圍控件;顯示一個數值刻度,爲輸出限定範圍的數字區間
Scrollbar 滾動條控件,當內容超過可視化區域時使用,如列表框。.
Text 文本控件;用於顯示多行文本
Toplevel 容器控件;用來提供一個單獨的對話框,和Frame比較類似
Spinbox 輸入控件;與Entry類似,但是可以指定輸入範圍值
PanedWindow PanedWindow是一個窗口布局管理的插件,可以包含一個或者多個子控件。
LabelFrame labelframe 是一個簡單的容器控件。常用與複雜的窗口布局。
tkMessageBox 用於顯示你應用程序的消息框。

2、Tkinter幾何管理

Tkinter控件有特定的幾何狀態管理方法,管理整個控件區域組織,以下是Tkinter公開的幾何管理類:包、網格、位置

3、Tkinter控件屬性

https://wenku.baidu.com/view/e34287db0722192e4436f657.html

原文:https://blog.zeruns.tech/index.php/archives/128/

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