Python GUI編程(Tkinter)
- 作者:楊夢鴿
- 校對:翟舒青
Python 提供了多個圖形開發(fā)界面的庫膏执,幾個常用 Python GUI 庫如下:
- Tkinter: Tkinter 模塊(Tk 接口)是 Python 的標準 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多數(shù)的 Unix 平臺下使用,同樣可以應用在 Windows 和 Macintosh 系統(tǒng)里奈虾。Tk8.0 的后續(xù)版本可以實現(xiàn)本地窗口風格,并良好地運行在絕大多數(shù)平臺中施逾。
- wxPython:wxPython 是一款開源軟件邦鲫,是 Python 語言的一套優(yōu)秀的 GUI 圖形庫,允許 Python 程序員很方便的創(chuàng)建完整的杈抢、功能健全的 GUI 用戶界面数尿。
- Jython:Jython 程序可以和 Java 無縫集成。除了一些標準模塊惶楼,Jython 使用 Java 的模塊右蹦。Jython 幾乎擁有標準的Python 中不依賴于 C 語言的全部模塊诊杆。比如,Jython 的用戶界面將使用 Swing何陆,AWT或者 SWT晨汹。Jython 可以被動態(tài)或靜態(tài)地編譯成 Java 字節(jié)碼。
Tkinter 編程
Tkinter 是 Python 的標準 GUI 庫贷盲。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應用程序淘这。
由于 Tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import Tkinter 庫巩剖、而且 IDLE 也是用 Tkinter 編寫而成慨灭、對于簡單的圖形界面 Tkinter 還是能應付自如。
注意:Python3.x 版本使用的庫名為 tkinter,即首寫字母 T 為小寫球及。
import tkinter
創(chuàng)建一個GUI程序
- 1、導入 Tkinter 模塊
- 2呻疹、創(chuàng)建控件
- 3吃引、指定這個控件的 master, 即這個控件屬于哪一個
- 4刽锤、告訴 GM(geometry manager) 有一個控件產(chǎn)生了镊尺。
實例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import Tkinter
top = Tkinter.Tk()
# 進入消息循環(huán)
top.mainloop()
以上代碼執(zhí)行結(jié)果如下圖:
實例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from Tkinter import * # 導入 Tkinter 庫
root = Tk() # 創(chuàng)建窗口對象的背景色
# 創(chuàng)建兩個列表
li = ['C','python','php','html','SQL','java']
movie = ['CSS','jQuery','Bootstrap']
listb = Listbox(root) # 創(chuàng)建兩個列表組件
listb2 = Listbox(root)
for item in li: # 第一個小部件插入數(shù)據(jù)
listb.insert(0,item)
for item in movie: # 第二個小部件插入數(shù)據(jù)
listb2.insert(0,item)
listb.pack() # 將小部件放置到主窗口中
listb2.pack()
root.mainloop() # 進入消息循環(huán)
以上代碼執(zhí)行結(jié)果如下圖:
Tkinter 組件
Tkinter的提供各種控件,如按鈕并思,標簽和文本框庐氮,一個GUI應用程序中使用。這些控件通常被稱為控件或者部件宋彼。
目前有15種Tkinter的部件弄砍。我們提出這些部件以及一個簡短的介紹,在下面的表:
控件 | 描述 |
---|---|
Button | 按鈕控件输涕;在程序中顯示按鈕音婶。 |
Canvas | 畫布控件;顯示圖形元素如線條或文本 |
Checkbutton | 多選框控件莱坎;用于在程序中提供多項選擇框 |
Entry | 輸入控件衣式;用于顯示簡單的文本內(nèi)容 |
Frame | 框架控件;在屏幕上顯示一個矩形區(qū)域檐什,多用來作為容器 |
Label | 標簽控件碴卧;可以顯示文本和位圖 |
Listbox | 列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶 |
Menubutton | 菜單按鈕控件乃正,由于顯示菜單項住册。 |
Menu | 菜單控件;顯示菜單欄,下拉菜單和彈出菜單 |
Message | 消息控件烫葬;用來顯示多行文本界弧,與label比較類似 |
Radiobutton | 單選按鈕控件凡蜻;顯示一個單選的按鈕狀態(tài) |
Scale | 范圍控件;顯示一個數(shù)值刻度垢箕,為輸出限定范圍的數(shù)字區(qū)間 |
Scrollbar | 滾動條控件划栓,當內(nèi)容超過可視化區(qū)域時使用,如列表框条获。. |
Text | 文本控件忠荞;用于顯示多行文本 |
Toplevel | 容器控件;用來提供一個單獨的對話框帅掘,和Frame比較類似 |
Spinbox | 輸入控件委煤;與Entry類似,但是可以指定輸入范圍值 |
PanedWindow | PanedWindow是一個窗口布局管理的插件修档,可以包含一個或者多個子控件碧绞。 |
LabelFrame | labelframe 是一個簡單的容器控件。常用與復雜的窗口布局吱窝。 |
tkMessageBox | 用于顯示你應用程序的消息框讥邻。 |
標準屬性
標準屬性也就是所有控件的共同屬性,如大小院峡,字體和顏色等等兴使。
屬性 | 描述 |
---|---|
Dimension | 控件大小照激; |
Color | 控件顏色发魄; |
Font | 控件字體; |
Anchor | 錨點俩垃; |
Relief | 控件樣式励幼; |
Bitmap | 位圖; |
Cursor | 光標口柳; |
幾何管理
Tkinter控件有特定的幾何狀態(tài)管理方法赏淌,管理整個控件區(qū)域組織,一下是Tkinter公開的幾何管理類:包啄清、網(wǎng)格六水、位置
幾何方法 | 描述 |
---|---|
pack() | 包裝; |
grid() | 網(wǎng)格辣卒; |
place() | 位置掷贾; |