0 概述
Python中有许多GUI模块可以用于开发GUI程序。最简单的有Turtle,然而它并不能用来创建图形用户界面。用于开发GUI的库主要有以下几种:
- Tkinter:Python**内置**的标准GUI库,是一种小巧的开发库,开发速度快,在小型程序中仍有不少应用。它支持跨平台。
- PyGTK:用C语言写的跨平台的GUI库,现在GTK已发展成了功能强大窗体丰富的GUI库。著名的GNOME即基于GTK。PyGTK提供了通过Python语言来访问GTK图形库的接口,所以在使用PyGTK之前需要安装GTK开发环境。
- PyQt:拥有丰富的窗体部件。QT现在已经扩展成一个跨平台的应用开发框架。PyQt提供Python访问Qt的图形开发库接口。
- WxPython:开源框架,同样具有跨平台性。WxPython将GUI图形界面开发库wxWidgets和Python语言绑定。有丰富的窗体部件,使用户可以快速创建功能强大、界面元素丰富的GUI应用程序。
这里主要介绍Tkinter
1 开始使用Tkinter
from tkinter import *
window = Tk() #创建一个窗口
label = Label(window, text = "Wellcome to Python") # 创建一个带文本的标签
button = Button(window, text = "Click Me") # 创建一个按钮
label.pack() # 把标签放在窗口中
button.pack() # 把按钮放在窗口中
# 包管理器将小构件一行一行地放在窗口之中
window.mainloop() # 创建一个事件循环,持续处理事件直到关闭主窗口
2 事件处理
from tkinter import *
def processOK(): # 回调函数
print("OK button is clicked")
def processCancel():
print("Cancel button is clicked")
window = Tk()
btOK = Button(window, text = "OK", fg = "red", command = processOK)
btCancel = Button(window, text = "Cancel", bg = "yellow",
command = processCancel)
# fg前景色(文字颜色),默认黑色
# bg背景色(背景颜色),默认灰色
btOK.pack()
btCancel.pack()
window.mainloop()
将函数放到类中:
from tkinter import *
class ProcessButtonEvent:
"""docstring for ProcessButtonEvent"""
def __init__(self):
window = Tk()
btOK = Button(window, text = "OK", fg = "red",
command = self.processOK)
btCancel = Button(window, text = "Cancel", bg = "yellow",
command = self.processCancel)
btOK.pack()
btCancel.pack()
window.mainloop()
def processOK(self): # 回调函数
print("OK button is clicked")
def processCancel(self):
print("Cancel button is clicked")
ProcessButtonEvent()
3 小构件
Tkinter中的小部件如下:
Button
按钮Canvas
画布CheckButton
复选框Entry
输入框Frame
容器,可将其他小部件放到里面Label
显示文本或图像Menu
实现下拉菜单或弹出菜单的菜单栏Menubutton
下拉菜单项Message
类似Label,但是能自动将文本放置在给定的宽度或宽高比内Radiobutton
单选框Text
格式化的文本显示,允许不同风格和属性显示和编辑文本,也支持内嵌的图片和窗口
一些属性:
- 默认情况下,label或button上的文本是居中的。可以设置
justify
属性改变对齐方式,如LEFT
,RIGHT
,CENTER
cursor
光标的形状设定:可以设置cursor
选项指定光标形状,如arrow
,circle
,cross
,plus
等- 当构建一个小构件的时候,可以指定一些属性,如 fg、bg、font、cursor、text、comm