目录

1、简介

2、创建Windows

常用的Tkinter组件

按钮的options

3、布局管理器

3.1pack布局管理局

pack()方法提供的参数选项

3.2grid布局管理器

grid()方法提供的参数选项

3.3place布局管理器

place()方法提供的参数选项


1、简介

        Tkiner是Python的标准GUI库。由于Tkinter内置在Python的安装包中,因此只要安装好Python就能导入Tkinter库,而且IDLE也是用Tkinter编写而成的。对于简单的图形界面Tkinter是能应付自如的,使用Tkinter可以快速创建GUI应用程序

        与其他编程语言的 GUI 工具包相比,Tkinter 编码效率高,能够实现快速开发的目的,非常适合初学者学习。Tkinter 使用纯 Python 语言开发,与 C/C++ 开发的 Qt 框架相比,Tkinter 有自身的局限性,比如性能、功能丰富程度等都不及 Qt,因此它只适合开发一些简单的程序,比如计算器的界面,或者一个简易的聊天窗口等

2、创建Windows

import tkinter

my_calendar = tkinter.Tk()
my_calendar.title('这是一个GUI界面')

my_calendar.mainloop()

Tkinter python 工具界面 tkinter图形界面_Tkinter python 工具界面

在创建窗口对象后,可以使用geometry()设置窗口的大小

my_calendar.geometry('1000x200')

(注意:x是小写字母,不是乘号)

Tkinter python 工具界面 tkinter图形界面_python_02

         Tkinter提供各种组件(控件),如按钮、标签和文本框,可在一个GUI应用程序中使用。这些组件通常被称为空间或者部件。目前常用的Tkinter组件如下表:

常用的Tkinter组件

控件

描述

Button

按钮控件,在程序中显示按钮

Canvas

画布控件,显示图形元素如线条或文本

Checkbutton

多选框控件,用于在程序中提供多项选择框

Entry

输入控件,用于显示简单的文本内容

Frame

框架控件,在屏幕上显示一个矩形区域,多用来作为容器

Label

标签控件,可以显示文本和位图

Listbox

列表框控件,用来显示一个字符串列表给用户

Menubutton

菜单按钮控件,用于显示菜单项

Menu

菜单控件,显示菜单栏、下拉菜单和弹出菜单

Message

消息控件,用来显示多行文本,与Label比较类似

Radiobutton

单选按钮控件,显示一个单选的按钮状态

Scale

范围控件,显示一个数值刻度,为输出限定范围的数字区间

Scrollbar

滚动条控件,当内容超过可视化区域时使用,如列表框

Text

文本控件,用于显示多行文本

Toplevel

容器控件,用来提供一个单独的对话框,和Frame比较类似

Spinbox

输入控件,与Entry类似,但是可以指定输入范围值

PanedWindow

一个窗口布局管理的插件,可以包含一个或者多个子控件

LabelFrance

一个简单的容器控件,常用于复杂的窗口布局

tkMessageBox

用于显示应用程序的消息框

Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数

import tkinter
from tkinter import *

my_calendar = tkinter.Tk()
my_calendar.title('这是一个GUI界面')
my_calendar.geometry('1000x200')

#  w = Button ( master, option=value, ... )
button1 = Button(my_calendar, text = "欢迎")

button1.pack()
my_calendar.mainloop()

master: 按钮的父容器

options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔

按钮的options

options

描述

activebackground

当鼠标放上去时,按钮的背景色

activeforeground

当鼠标放上去时,按钮的前景色

bd

按钮边框大小,默认为2像素

bg

按钮的背景色

command

按钮关联的函数,当按钮被点击时,执行该函数

fg

按钮的前景色(按钮文本的颜色)

font

文本字体

height

按钮的高度

highlightcolor

要高亮的颜色

image

按钮上要显示的图片

justify

显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT,RIGHT,CENTER

padx

按钮在X轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离

pady

按钮在Y轴方向上的内边距(padding)

relief

边框样式,设置控件3D效果,可选的有:FLAT,SUNKEN,RAISED,GROOVE,RIDGE。默认效果为FLAT

state

设置按钮组件状态,可选的有NORMAL,ACTIVE,DISABLED。默认NORMAL

underline

下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为0时,第一个字符带下划线,为1时,前两个字符带下划线,以此类推

width

按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小)

wraplength

限制按钮每行显示的字符的数量

text

按钮的文本内容

anchor

锚选项,控制文本的位置,默认为中心

Tkinter python 工具界面 tkinter图形界面_布局管理器_03

3、布局管理器

Tkinter布局管理器(geometry manager)用于组织和管理父组件(往往是窗口)中子组件的布局方式。Tkinter提供了3种不同风格的几何布局管理类:pack、grid和place

3.1pack布局管理局

pack布局管理器采用块的方式组织组件。pack布局根据子组件创建生成的顺序,将其放在快速生成界面设计中而广泛采用

调用子组件的方法pack(),则该子组件在其父组件中采用pack布局:

pack()方法提供的参数选项

选项

描述

取值范围

side

停靠在父组件的那一边上

’top’(默认值),’buttom’,’left’,’right’

anchor

停靠位置,对应于东、南、西、北以及4个角

’n’, ’s’, ’e’, ’w’, ’nw’, ’sw’, ’se’, ’ne’, ’center’

fill

填充空间

’x’, ’y’, ’both’, ’none’

expand

扩展空间

0或1

ipadx,ipady

组件内部在x/y方向上填充的空间大小

单位为c(厘米)、m(毫米)、i(英寸)、p(打印机的点)

padx,pady

组件外部在x/y方向上填充的空间大小

单位为c(厘米)、m(毫米)、i(英寸)、p(打印机的点)

import tkinter
from tkinter import *

my_calendar = tkinter.Tk()
my_calendar.title('这是一个GUI界面')
my_calendar.geometry('500x500')

button1 = Button(my_calendar, text = "欢迎")
button1.pack(side = LEFT)
button2 = Button(my_calendar, text = "光临")
button2.pack(side = RIGHT)

my_calendar.mainloop()

Tkinter python 工具界面 tkinter图形界面_Tkinter python 工具界面_04

3.2grid布局管理器

        grid(表格)布局管理器采用表格结构组织组件。子组件的位置由行/列确定的单元格决定,子组件可以跨越多行/列。每一列中,列宽由这一列中最宽的单元格确定。grid布局适合于表格形式的布局,可以实现复杂的界面,因而被广泛采用

调用子组件的grid()方法,则该组件在其父组件中采用grid布局:

grid(option = value,……)

grid()方法提供的参数选项

选项

描述

取值范围

sticky

组件紧贴所在单元格的某一边角,对应于东、南、西、北以及四个角

’n’,’s’,’e’,’w’,’nw’,’sw’,’se’,’ne’,’center’

row

单元格行号

整数

column

单元格列号

整数

rowspan

行跨度

整数

columnspan

列跨度

整数

ipadx,ipady

组件内部在x/y方向上填充的空间大小

单位为c(厘米)、m(毫米)、i(英寸)、p(打印机的点)

padx,pady

组件外部在x/y方向上填充的空间大小

单位为c(厘米)、m(毫米)、i(英寸)、p(打印机的点)

        grid()有两个重要的参数:一个是row;另一个是column。它们用来指定将子组件放置到什么位置,如果不指定row,则会将子组件放置到第一个可用的行上;如果不指定column,则使用第0列(首列)

import tkinter
from tkinter import *

my_calendar = tkinter.Tk()
my_calendar.title('这是一个GUI界面')
my_calendar.geometry('500x500')

button1 = Button(my_calendar, text = "欢迎")
button1.grid(row = 0, column = 0)
button2 = Button(my_calendar, text = "光临")
button2.grid(row = 1, column = 1)

my_calendar.mainloop()

Tkinter python 工具界面 tkinter图形界面_控件_05

3.3place布局管理器

        place布局管理器允许指定组件的大小与位置。place布局的优点是可以精确控制组件的位置,不足之处是改变窗口大小时,子组件不能随之灵活改变大小

调用子组件的方法place(),则该子组件在其父组件中采用place布局:

place(option = value,……)

place()方法提供的参数选项

选项

描述

取值范围

x,y

将组件放到指定位置的绝对坐标

从0开始的整数

relx,rely

将组件放到指定位置的相对坐标

取值范围为0~1

height,width

高度和宽度,单位为像素(px)

anchor

对齐方式,对应于东、南、西、北以及4个角

’n’,’s’,’e’,’w’,’nw’,’sw’,’se’,’ne’,’center’

import tkinter
from tkinter import *

my_calendar = tkinter.Tk()
my_calendar.title('这是一个GUI界面')
my_calendar.geometry('500x500')

button1 = Button(my_calendar, text = "欢迎")
button1.place(x = 0, y = 0)
button2 = Button(my_calendar, text = "光临")
button2.place(x = 50, y = 50)

my_calendar.mainloop()

Tkinter python 工具界面 tkinter图形界面_开发语言_06