python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
全棧工程師開發手冊 (作者:欒鵬)
python的GUI界面編程,常用的幾個python庫包含如下:
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 字節碼。
Tkinter界面庫
今天我們主要介紹一下Tkinter,在庫中定義了一些基礎控件對象,和組合控件對象。可以在創建控件時傳遞控件屬性,也可以在創建了控件對象以后,再設置屬性。
窗口的GUI編程主要包含的知識點為窗口(頂層容器)、容器、組合控件、控件、控件屬性、控件函數。本文提供了一個demo,包含了對頂層窗口、基礎控件(標簽、按鈕)、組合控件(比例尺控件、NumericUpDown控件、ComboBox)、控件的屬性(文本、位置)、控件函數(按鈕點擊事件)等內容的編程示例。
主要的控件
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 用于顯示你應用程序的消息框。
控件屬性
Dimension 控件大小;
Color 控件顏色;
Font 控件字體;
Anchor 錨點;
Relief 控件樣式;
Bitmap 位圖;
Cursor 光標;
雖然python可以進行界面GUI設計,不過個人覺得界面設計還有net更牛逼一些。
python2.7下的代碼
#coding:utf-8
from Tkinter import * #控件基礎包,導入這個包后,這個包下的所有函數可以直接調用
import Tkinter
from Tkinter import Label, Button, END
from Tix import Tk, Control, ComboBox #升級的組合控件包
from tkMessageBox import showinfo, showwarning, showerror #各種類型的提示框
#除此之外還有很多界面編程的包
#頂層窗口
top = Tkinter.Tk() #創建頂層窗口
top.geometry('250x150') #初始化窗口大小
top.title("標題")
top.tk.eval('package require Tix') #引入升級包,這樣才能使用升級的組合控件
#標簽控件
label = Tkinter.Label(top, text='Hello World!',font='Helvetica -12 bold') #創建標簽
label.pack(fill=Y, expand=1) #填充到界面
#按鈕控件
button = Tkinter.Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red', bg='red', fg='white') #創建按鈕,command為回調函數
button.pack(fill=Tkinter.X, expand=1) #fill=tkinter.X表示橫向拉伸完全
#自定義函數,控制控件的縮放
def resize(ev=None):
label.config(font='Helvetica -%d bold' % scale.get())
#比例尺控件
scale = Scale(top, from_=10, to=40,orient=HORIZONTAL, command=resize) #縮放比例尺
scale.set(12) #初始值
scale.pack(fill=X, expand=1) #填充到界面
#NumericUpDown控件
ct = Control(top, label='Number:',integer=True, max=12, min=2, value=2, step=2)
ct.label.config(font='Helvetica -14 bold')
ct.pack()
#ComboBox控件
cb = ComboBox(top, label='Type:', editable=True)
for animal in ('dog', 'cat', 'hamster', 'python'):
cb.insert(END, animal)
cb.pack()
Tkinter.mainloop() #運行這個GUI應用
在python3中,
Tkinter改成了tkinter,
Tix改成了tkinter.tix,
tkMessageBox 改成了tkinter.messagebox
python3.6下代碼
#coding:utf-8
#GUI界面編程
from tkinter import * #控件基礎包,導入這個包后,這個包下的所有函數可以直接調用
import tkinter
from tkinter import Label, Button, END
from tkinter.tix import Tk, Control, ComboBox #升級的組合控件包
from tkinter.messagebox import showinfo, showwarning, showerror #各種類型的提示框
#除此之外還有很多界面編程的包
#頂層窗口
top = tkinter.Tk() #創建頂層窗口
top.geometry('250x150') #初始化窗口大小
top.title("標題")
top.tk.eval('package require Tix') #引入升級包,這樣才能使用升級的組合控件
#標簽控件
label = tkinter.Label(top, text='Hello World!',font='Helvetica -12 bold') #創建標簽
label.pack(fill=Y, expand=1) #填充到界面
#按鈕控件
button = tkinter.Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red', bg='red', fg='white') #創建按鈕,command為回調函數
button.pack(fill=tkinter.X, expand=1) #fill=tkinter.X表示橫向拉伸完全
#自定義函數,控制控件的縮放
def resize(ev=None):
label.config(font='Helvetica -%d bold' % scale.get())
#比例尺控件
scale = Scale(top, from_=10, to=40,orient=HORIZONTAL, command=resize) #縮放比例尺
scale.set(12) #初始值
scale.pack(fill=X, expand=1) #填充到界面
#NumericUpDown控件
ct = Control(top, label='Number:',integer=True, max=12, min=2, value=2, step=2)
ct.label.config(font='Helvetica -14 bold')
ct.pack()
#ComboBox控件
cb = ComboBox(top, label='Type:', editable=True)
for animal in ('dog', 'cat', 'hamster', 'python'):
cb.insert(END, animal)
cb.pack()
tkinter.mainloop() #運行這個GUI應用
總結
以上是生活随笔為你收集整理的python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql语句查询商品的一二三级分类都是一个
- 下一篇: mysql主键创建非聚集索引_什么是聚集