tkinter中text属性_PythonGUI编程:Tkinter 本节知识⼤纲:
Python⾥的图形化界⾯(GUI)模块主要有Tkinter(python⾃带)、PyQt、wxPython,我们这节主要讲解Tkinter组件:
⼀、Tkinter介绍
tkinter模块只要⽤户安装好Python环境就可以直接使⽤;
1. 第⼀个tkinter程序
import tkinter as tk  # 给tkinter重命名为tk
root = tk.Tk()  # 新建⼀个窗体
root.mainloop()  # 展⽰窗体
2. 设置属性并添加控件
设置窗体标题、指定窗体⼤⼩、添加按钮、输⼊框、标签并布局
import tkinter as tk
root = tk.Tk()
# 为窗体设置⼀个标题
root.title("第⼀个tkinter窗体")
# 指定窗体的⼤⼩,这⾥的乘号是⼩写字母x
# 添加⼀个标签
Label01 = Label(root,text = "第⼀个label标签")
# 将标签布局到窗体上
Label01.pack()
# 添加⼀个按钮,可以在创建按钮的同时在句尾调⽤pack语句进⾏布局
Button01 = Button(root,text = "确定").pack()
# 添加⼀个单⾏⽂本框
Entry01 = Entry(root).pack()
# 展⽰窗体
root.mainloop()
⼆、控件的属性
1. tkinter常⽤的控件属性
(1)定义控件的名称使⽤参数text,传⼊的字符串值即为控件的名称;
(2)定义控件⾼度使⽤参数hight,宽度使⽤参数width,传⼊的值为整形数值;
(3)定义控件在空间中的位置,使⽤参数anchor,传⼊的字符参数为e、s、w、n以地图的东南西北来定义为右下左上,也可以同时设置左下sw、左上nw、右下se、右上ne;
(4)定义控件的背景⾊,使⽤参数bg,前景⾊使⽤参数fg,传⼊字符值可以直接是对应颜⾊的英⽂名称;
(5)设置布局在pack()函数⾥,使⽤参数side,传⼊的值为常量tk.LEFT或者tk.RIGHT,表⽰从左到右或
者从右到左布局
(6)创建图⽚控件时,图⽚控件的⽂件源使⽤参数file,传⼊的字符值为为⽂件路径,在控件中使⽤图⽚则使⽤参数image,传⼊的值为图⽚控件变量;
(7)设置整个窗体的尺⼨,使⽤参数geometry,传⼊的值为字符值,注意乘号⽤⼩写字母x代替;如果要设置长400宽300的窗体则使⽤语句geometry = "400x300"
(8)设置控件与边界的距离在pack函数⾥使⽤参数padx,设置左右距离,使⽤pady设置上下距离
2. 案例演⽰:画出⼀个简单的窗体布局
import tkinter as tk
# 新建⼀个窗体名称:root
root = tk.Tk()
# 为窗体添加⼀个标题
root.title("第⼆个Python窗体")
# 新建标签
photo = tk.PhotoImage(file = "/Users/yushengtan/Desktop/image.png")
Label01 = tk.Label(root,text = "第⼀个Label标签",anchor = "se").pack(side = tk.LEFT)
imageLable01 = tk.Label(root,image = photo).pack(side = tk.LEFT)
Label02 = tk.Label(root,text = "第⼆个Label标签",bg = "blue",fg = "white",font = ("华⽂宋体",20)).pack()
Label03 = tk.Label(root,text = "第三个Label标签",).pack()
Label04 = tk.Label(root,text = "第四个Label标签").pack()
Label05 = tk.Label(root,text = "第五个Label标签").pack()
Button01 = tk.Button(root,text = "确定").pack()
# 显⽰
root.mainloop()
效果演⽰:
3. 案例演⽰:画出能计算加法的计算器界⾯
# 导包的时候使⽤*,创建控件的时候不⽤写类名了
from tkinter import *
# 创建⼀个窗体,名称为root
root = Tk()
# 为窗体添加标题
root.title("求两数之和")
photo = PhotoImage(file = "/Users/yushengtan/Desktop/calc.png")
# 定义控件
PhotoLabel = Label(root,image = photo).pack(side = LEFT,padx = 10,pady = 5)
# 第⼀个数字⽂本框
Entry01 = Entry(root,bg = "pink",width = 10,font = ("华⽂⿊体",20)).pack(side = LEFT,padx = 5,pady = 5)
# 加号html单行文本框代码怎么写
Label_plus = Label(root,text = "+",font = ("华⽂⿊体",20)).pack(side = LEFT,padx = 5,pady = 5)
# 第⼆个数字⽂本框
Entry02 = Entry(root,bg = "pink",width = 10,font = ("华⽂⿊体",20)).pack(side = LEFT,padx = 5,pady = 5)
# 等于号
Label_equal = Label(root,text = "=",font = ("华⽂⿊体",20)).pack(side = LEFT,padx = 5,pady = 5)
# 第三个数字⽂本框
Entry03 = Entry(root,bg = "green",width = 10,font = ("华⽂⿊体",20)).pack(side = LEFT,padx = 5,pady = 5)
Button01 = Button(root,text = "计算",width = 10,height = 2,font = ("华⽂⿊体",15)).pack(side = LEFT,padx = 10,pady = 5)
# 运⾏
root.mainloop()
界⾯效果:
三、基本布局
1. place绝对布局
pack布局是按顺序布局,⽽place布局可以直接定义绝对位置,只需要给place()函数⾥传⼊两个参数x和y,其值为整型数值表⽰相对于窗体左上⾓的坐标位置;⽤法如place(x=10,y=20)
案例演⽰:
绘制⼀个简易的登录界⾯
from tkinter import *
root = Tk()
root.title("⽤户登录")
Label_username = Label(root,text = "登录名:",font = ("华为⿊体",16)).place(x = 50,y = 20)
Entry_username = Entry(root,font = ("华⽂⿊体",16),width = 20).place(x = 120,y = 20)
Label_password = Label(root,text = "密码:",font = ("华为⿊体",16)).place(x = 50,y = 60)
Entry_password = Entry(root,font = ("华⽂⿊体",16),width = 20).place(x = 120,y = 60)
Button_login = Button(root,text = "登录",font = ("华⽂⿊体",16),width = 8).place(x = 70,y = 120)
Button_cancer = Button(root,text = "取消",font = ("华⽂⿊体",16),width = 8).place(x = 210,y = 120)
root.mainloop()
运⾏效果:
2. grid表格布局
grid是⼀种⽹格布局,grid(row = 1,column = 2),n⾏n列分别表⽰表格的⾏数和列数,从0开始计数;可以使⽤参数sticky控制控件靠近单元格的位置,字符值可以给出n、s、w、e设置上、下、左、右,我们还是以登录窗体为例:
# grid窗体布局
from tkinter import *
root = Tk()
root.title("⽤户登录")
# 表格图⽚
photo = PhotoImage(file = "/Users/yushengtan/Desktop/login.png")
img_label = Label(root,image = photo).grid(row = 0,column = 0,rowspan = 2)
# 第⼀⾏第⼆列
Label_username = Label(root,text = "⽤户名:",font = ("华⽂⿊体",16)).grid(row = 0,column = 1)
# 第⼀⾏第三列
Entry_username = Entry(root,font = ("华⽂⿊体",16)).grid(row =0,column = 2)
# 第⼆⾏第⼆列
Label_password = Label(root,text = "密码:",font = ("华⽂⿊体",16)).grid(row = 1,column = 1)
# 第⼆⾏第三列
Entry_password = Entry(root,font = ("华⽂⿊体",16)).grid(row =1,column = 2)
# 第四⾏第⼆列
Button_login = Button(root,text = "登录",width = 8,font = ("华⽂⿊体",16)).grid(row = 3,column = 2,sticky = "e")
# 第四⾏第三列
Button_cancer = Button(root,text = "取消",width = 8,font = ("华⽂⿊体",16)).grid(row =3,column = 2,sticky = "w")
root.mainloop()
输出效果:
注意:这⾥的红⾊辅助线是为了帮助理解表格布局
四、使⽤类封装GUI
这⾥我们使⽤类来封装GUI程序,以⾄于我们后⾯需要调⽤的时候直接实例化⼀个对象就可以产⽣⼀个窗⼝,类与对象的知识我们后⾯会深⼊讲解,现在我们只需怎么使⽤即可;我们把前⾯的登录窗⼝通过类来进⾏封装

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。