目录
二、常用的GUI库有:Tkinter、wxPython、PyQT……
一、关于GUI用户界面编程的概述:
- GUI——图形用户界面编程,又称为图形化用户接口
- GUI编程类似于“搭积木”,将一个个组件(widget)放到窗口当中。
- 窗口当中有各式各类的组件,例如:按钮、菜单、编辑区……,并通过增加“对事件的处理”成为一个完整的程序。
- 人们不需要记忆和输入繁琐的命令,可以直接通过鼠标或者是键盘操作界面。
二、常用的GUI库有:Tkinter、wxPython、PyQT……
#Tkinter库
- 其是python标准的GUI库,支持跨平台的GUI程序开发,同时其适合小型的GUI程序编程
- 缺少合适的可视化界面设计工具
- 需要编写代码完成窗口的布局和设计
1、常用方法: mainloop()主事件循环执行
2、执行步骤:
- 导入Tkinter模块: from Tkinter import * 或者是 import Tkinter
- 创建GUI应用程序的主窗口: tk = Tkinter.Tk()
- 添加各种组件
- 进入主事件循环的由用户触发每个事件响应
3、常用组件
组件 | 中文名称 | 具体描述 |
---|---|---|
Canvas | 画布 | 提供了绘图功能,可以包含图形或者是位图,实现定制窗口组件 |
Button | 按钮 | 具有鼠标掠过、按下、释放以及键盘操作事件 |
Label | 标签 | 显示文字或者图片 |
Entry | 文本框 | 单行文字区域,收集键盘输入 |
Text | 文本域 | 多行文字区域,收集或显示用户输入的文字 |
CheckButton | 多选框 | 一组方框,可以选择多项 |
Radiobutton | 单选框 | 一组按钮,只能选择一项 |
Menu | 菜单 | 点击菜单弹出一个选项列表供用户选择 |
Menubutton | 菜单按钮 | 包含下拉式、层叠式 |
Listbox | 列表框 | 一个选项列表,用户可从中选择 |
Scale | 进度条 | 可设定起始值和结束值,能显示当前位置的精确值 |
Scrollbar | 滚动条 | 对其支持的组件(画布、文本框、文本域、列表框)提供滚动的功能 |
Frame | 框架 | 包含其他组件的纯容器 |
Toplevel | 顶级容器 | 类似框架,但是提供了一个独立的窗口容器 |
4、组件属性:每个组件都有自己的属性和方法
布局管理器:
- pack():将组件包装到一个父组件当中,然后创建一个版面
- gird():通过二维网格组织窗口组件创建一个类似表的版面
- place():显式将一个窗口组件放到指定的位置
共用的一些属性:
- Dimensions:长度、宽度
- Colors:颜色
- Fonts:字体
- Anchors:定义文本的相对位置
- Relief styles:组件的样式
- Bitmaps:位图
- Cursors:光标
5、Canvas组件
- 一个长方形的容器,可以在其中放置图形、文字、组件或者是帧
- 创建画布: canvas = Canvas(master,options=value,...)
- 参数master:代表父窗口
- 参数options:设置画布的属性
- 在画布上面可以创建和绘制各种图形
-
常用属性 具体描述 bd 边框的宽度,以像素为单位,默认为2
bg 背景颜色 confine 默认值为ture时,画布没有滚动条 cursor 画布中光标的形状,arrow,circle,dot height 高度 width 宽度 fill 填充色 -
常用方法 具体描述 create_arc() 创建弧线,和弦、饼图扇区、简单的弧线 create_image() 创建一个图像,位图图像或者是照片图像类的一个实例 create_line() 创建一条直线 create_oval() 在指定的坐标上绘制一个圆形或者是椭圆形 create_polygon() 绘制一个多边形(3个顶点以上) create_rectangle() 绘制一个矩形
#在画布上画一个正方形
from tkinter import * #导入ktinter模块
tk = Tk() #创建tkinter对象
canvas = Canvas(tk,width=400,height=400) #tk为父窗口,设置画布的长度和宽度
canvas.pack() #布局管理器
canvas.create_rectangle(50,50,100,100) #设置左上方顶点坐标和右下角顶点坐标
tk.mainloop() #主事件循环执行
#在画布上画一个有颜色的长方形
from tkinter import * #导入ktinter模块
tk = Tk() #创建tkinter对象
canvas = Canvas(tk,width=400,height=400) #tk为父窗口,设置画布的长度和宽度
canvas.pack() #布局管理器
p1 = 10,50