【Python之tkinter模块】

安装

tkinter库:用于制作可视化的窗口
pyinstaller:直接在cmd中运行,用于打包py

pip install tk ##安装
python -m tkinter #检查是否安装
pip install -i pyinstaller https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -i tkinter https://pypi.tuna.tsinghua.edu.cn/simple/

检查安装

import tkinter as tk
from tkinter import *

import tkinter
print(tkinter.TkVersion)
  • Label:标签控件,用来在窗口上显示文本和图片
  • Message:消息控件,用来显示多行文本,与Label功能类似
  • Button:按钮控件,用户可以点击按钮,点击事件将会传递给设置的回调函数
  • Entry:文本输入框控件,用户可以输入文字,但只能在一行输入
  • Text:多行文本输入框控件,用户可以输入多行文字,自由换行
  • Canvas:画布控件,可以在上面显示基本图形、文字、图片
  • Frame:框架控件,作为一个小容器,相当于给组件分组。
  • LabelFrame:文字框架控件,和Frame不同的是,框架外面多了文本提示
  • Menu:菜单控件,在窗口上显示菜单,或定义弹出式菜单。
  • Menubutton:菜单按钮控件,是Button的样子,点击后弹出一个菜单。
  • Checkbutton:多选按钮,用户可以勾选或取消勾选。
  • Radiobutton:单选按钮,用户可以在同类的Radiobutton中选择一个,无法取消勾选
  • Listbox:列表框组件,可以显示一个字符串的列表
  • Scrollbar:滚动条控件,用来添加一个滚动条控制滚动
  • Scale:尺度条控件,用来添加一个数字滑块,用户可以滑动调整数值。
  • Spinbox:数字选值框控件,用户既可以输入数字,也可以按调节按钮调整数值。
  • OptionMenu:选项菜单,用户可以从下拉菜单中选择一个值,但是不能自己输入。
  • PanedWindow:分栏容器控件,和Frame类似,但是有更多的功能设定,比如用户可以调节大小
  • Toplevel:上层窗口控件,可以定义某个窗口的子窗口。

Button

  • 1. 自定义button
# 创建一个自定义样式的按钮
custom_button = tk.Button(
    root,
    text="自定义按钮",         ##按钮文本内容
    font=("Helvetica", 14),  # 设置字体和字号
    bg="green",              # 设置背景颜色
    fg="white",              # 设置前景颜色(文本颜色)
    command=custom_function  # 设置按钮点击时的响应函数,要执行哪个函数
)

# 将自定义按钮添加到窗口
custom_button.pack()


height  按钮高度
width   按钮宽度
padx    按钮横向内边距,按钮内容与按钮的边框间距
pady    按钮纵向内边距,按钮内容与按钮的边框间距
command  点击按钮时执行的函数
bd  按钮边框大小;边框会呈现立体感
activebackground  鼠标点击时按钮背景色
activeforeground  鼠标点击去时按钮前景色
# -*- coding:utf-8 -*-
import tkinter as tk

root = tk.Tk()

# 创建按钮,并设置按钮的背景色和前景色
root.title("my Windows")  ##窗口标题名字
root.geometry('250x350')  ##窗口尺寸
root.resizable(False, False)  ##如果有这个,说明窗口不能通过鼠标改变大小,正常这个函数不要
btn1 = tk.Button(root,text='测试按钮1',bg='white',fg='green',padx=30,pady=20,anchor="center") ##创建按钮,并设置按钮的字体、大小和对齐方式
btn1.pack()  ##pack()方法将按钮添加到窗口中,会根据窗口的大小和内容自动调整按钮的位置

btn2 = tk.Button(root,text='测试按钮3',bd='10')  ##立体按钮
btn2.pack()

btn3 = tk.Button(root, text='退出', command=root.quit)
btn3.pack()

btn4 = tk.Button(root,text='测试按钮2',activebackground='blue',activeforeground='red')
btn4.pack()

root.mainloop() ##可以让窗口循环显示,这个函数要有,否则运行时窗口一闪就没了

在这里插入图片描述

Label

菜鸟教程

text	显示的文本
font	文本的字体
image	显示的图片
padx	标签内容与左右的间距
pady	标签内容与上下的间距
anchor	文本靠标签哪个方向显示,可以是n,s,w,e,ne,nw,sw,se,center,即北、南、西、东、东北、西北、西南、东南、中间,默认靠中间显示
justify	文本的对齐方式,可以是left, right, center,默认是center

共有bold(加粗), italic(斜体),underline(下划线),overstrike(删除线)几种
# -*- coding:utf-8 -*-
import tkinter as tk

root = tk.Tk()

# 创建按钮,并设置按钮的背景色和前景色
root.title("my Windows")
root.geometry('250x350')
root.resizable(False, False)

lab = tk.Label(root, text="Hello, Tkinter!",font=("黑体", 20, "bold", "italic", "underline", "overstrike"))
lab.pack()

btn1 = tk.Button(root, text='退出', command=root.quit)
btn1.pack()

root.mainloop()

在这里插入图片描述

布局管理(pack,grid,place)

#######方式一
###八个方位和中心(n, s, w, e, nw, ne, sw, se, center),默认是"nw"
w1 = Button(root, text="多余空间靠左")
w1.pack(anchor="w") 

######方式二
w1 = Button(root, text="Hello")
w1.pack(padx=50, pady=30) #左右间隔50,上下间隔30
w1 = Button(root, text="Hello")
w1.pack(padx=(50, 40), pady=(30, 60)) #左间隔50,右间隔40,上间隔30,下间隔60

#####方式三
Button(root, text="0行0列").grid(row=0, column=0)
Button(root, text="1行0列").grid(row=1, column=0)
Button(root, text="0行1列").grid(row=0, column=1)
Button(root, text="1行1列").grid(row=1, column=1)

Entry

Entry是一个文本框组件,用户可以在里面输入文本

# -*- coding:utf-8 -*-
import tkinter as tk

root = tk.Tk()

# 创建按钮,并设置按钮的背景色和前景色
root.title("my Windows")
root.geometry('250x350')
root.resizable(False, False)

ent = tk.Entry(root)
ent.pack()

def printget():
    print(ent.get())

tk.Button(root, text="获取输入", command=printget).pack()

root.mainloop()

在这里插入图片描述

####规定一个变量,便可以把输入的文字存储为变量
ret = simpledialog.askstring(title = '输入',prompt='请输入word绝对路径或相对路径')

#####将输入框得内容传递给变量

# -*- coding:utf-8 -*-
import tkinter as tk

root = tk.Tk()

# 创建按钮,并设置按钮的背景色和前景色
root.title("my Windows")
root.geometry('250x350')

AA_var = tk.StringVar()  # 创建一个StringVar类型的变量来存储Entry的内容
entry = tk.Entry(root, textvariable=AA_var)
entry.pack()

btn1 = tk.Button(root, text='退出', command=root.quit)
btn1.pack()

root.mainloop()
BBBB = AA_var.get()
print(BBBB)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值