Tkinter图形界面应用

目录

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()

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

my_calendar.geometry('1000x200')

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

         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锚选项,控制文本的位置,默认为中心

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()

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()

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()

参考文献:Python课程设计,夏敏捷、尚展垒著,2020

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的呆子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值