您的位置:首页 > 编程语言 > Python开发

python的GUI编程(Tkinter库)(一)

2017-06-12 12:38 741 查看

python的GUI编程(Tkinter库)

简介

GUI(graphics users interface)图形用户界面,

Tkinter模块已经在python中内置,所以在使用前直接导入即可,两种导入方式:

import tkinter as tk—-导入tkinter,但没有引入任何组件,在使用时需要使用tk前缀,如需要引入按钮,则表示为:tk.Button

from tkinter import *—-将tkinter中的所有组件一次性导入。

构建和运行GUI程序的步骤

-导入tkinter模块

-创建一个顶层窗口

-在顶层窗口的基础上构建所需的GUI模块和功能

-将每个木哦快与底层代码关联起来

-执行主循环

tkinter主要的组件及组建的属性、集合管理方法

主要组件

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 光标;

几何管理

Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置

几何方法 描述

pack() 包装;

grid() 网格;

place() 位置;

注意

Tk使用了一种包管理所有的组件当定义完组件之后,需要调用pack()方法来控制组件的显示方式,若不调用
4000
pack()方法,组件将不会显示

在交互环境下,编写Tkinter测试代码时,运行过Tk()之后即进入主循环,可以看到顶层窗口,而若运行py文件,一定要调用mainloop()方法进入主循环,方可拷打顶层窗口

顶层窗口也称为根窗口,包括一个标题栏和窗口管理器和窗口装饰部分,一个Tkinter开发的应用程序中,值需要创建一个顶层窗口,并且此窗口必须建立其他窗口建立之前

创建GUI应用程序窗口代码的模块

from Tkinter import

tk=TK()



tk.mainloop()

示例:创建顶层窗口

from Tkinter import

top=Tk()

top.title(‘top’)

top.mainloop()

结果:

标签(label)

标签组件可以用来显示文本和图片,通过在文本中添加换行符来控制换行,也可以通过组件的大小实现自动换行

示例:

from Tkinter import *

top=Tk()

top.title(‘top’)

label=Label(top,text=’hello world!’)

label.pack() #调用pack方法

top.mainloop()

结果:



Label组件常用参数

height 组件高度

width 组件宽度

fg 前景字体颜色

bg 背景颜色

justify 多行文本的对齐方式,可选参数有:LEFT、CENTER、RIGHT

padx 文本左右两侧的空格数

pady 文本上下两侧的空格数

添加参数后的程序运行示例

示例:

from Tkinter import *

top=Tk()

top.title(‘top’)

label=Label(top,text=’hello world!’,height=10,width=30,fg=’white’,bg=’green’)

label.pack()

top.mainloop()

结果:



框架(Frame)

框架相对于其他组件而言,它只是个容器,因为它没有方法,但它可以捕获键盘和鼠标的事件来进行回调

框架一般用作包含一组空间的主体,切可以制定外观

示例:



示例:

from Tkinter import *
root=Tk()
root.title('top')
for relief in [RAISED ,SUNKEN,FLAT,RIDGE,SOLID, ]:
f=Frame(root,borderwidth=2,relief=relief)
Label(f,text=relief,width=10).pack(side=LEFT)
f.pack(side=LEFT,padx=5,pady=5)
root.mainloop()


结果:



按钮(Button)

按钮可以禁用,如果将按钮放在 TAB群里,就可以使用TAB键来进行跳转和定位

示例:

from Tkinter import *
root=Tk()
root.title('top')
Button(root,text='jinyong',state=DISABLED).pack(side=LEFT)
Button(root,text='quxiao').pack(side=LEFT)
Button(root,text='queding').pack(side=LEFT)
Button(root,text='tuichu',command=root.quit).pack(side=RIGHT)
root.mainloop()


结果:



Button组件参数

height 组件高度

width 组件宽度

fg 前景字体颜色

bg 背景颜色

activebackground 按钮按下时的背景颜色

avtiveforeground 按钮按下时前景颜色

justify 多行文本的对齐方式,可选参数:LEFT、CENTER、RIFGT

padx 文本左右两侧的空格数(默认为1)

pady 文本上下两侧的空格数(默认为1)

state 设置组件状态,默认为NORMAL,可设置为:DISABLED–禁用组件

示例:

from Tkinter import *
root=Tk()
root.title('top')
Button(root,text='jinyong',state=DISABLED,height=2,width=10).pack(side=LEFT)
Button(root,text='quxiao',height=2,width=10,fg='green').pack(side=LEFT)
Button(root,text='queding',height=2,width=10,fg='yellow').pack(side=LEFT)
Button(root,text='tuichu',height=2,width=10,fg='red',activebackground='blue',activeforeground='white',command=root.quit).pack(side=RIGHT)
root.mainloop()


结果:



输入框(Entry)

可以为输入框设置默认值,也可以禁止用户输入,当用户输入的内容一行显示不下的时候,输入框自动生成滚动条

示例:

from Tkinter import *
root=Tk()
root.title('top')
f1=Frame(root)
Label(f1,text='biaozhushurukuang:',foreground='red').pack(side=LEFT,padx=5,pady=10)
e1=StringVar()
Entry(f1,width=60,textvariable=e1).pack(side=LEFT)
e1.set('morenneirong')
f1.pack()
f2=Frame(root)
Label(f2,text='jinyongshurukuang:',foreground='blue').pack(side=LEFT,padx=5,pady=10)
e2=StringVar()
Entry(f2,width=60,textvariable=e2,state=DISABLED).pack(side=LEFT)
e2.set('bukegenggaineirong')
f2.pack()
root.mainloop()


结果:



Entry组件常用参数

height 组件的高度

width 组件的宽度

fg 前景字体颜色

bg 背景颜色

show 将Entry框中的文本替换为制定字符,用于输入密码等,如设置show=“*”

state 设置组件状态,默认为NORMAL,可设置为:DISABLED–禁用组件,READONLY–只读
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: