Python GUI界面tkinter和ttkbootstrap

一、tkinter库

1.tkinter介绍

tkinter是Python自带的GUI库,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法
tkinter安装:python内置库不需要安装可以直接使用

2.tkinter常用控件和方法:

窗口常用控件:

控件类型控件名称控件作用
Button按钮点击按钮时触发/执行一些事件(函数)
Canvas画布提供绘制图,比如直线、矩形、多边形等
Checkbutton复选框多项选择按钮,用于在程序中提供多项选择框
Entry文本框输入框用于接收单行文本输入
Frame框架(容器)控件定义一个窗体(根窗口也是一个窗体),用于承载其他控件,即作为其他控件的容器
Lable标签控件用于显示单行文本或者图片
LableFrame容器控件一个简单的容器控件,常用于复杂的窗口布局。
Listbox列表框控件以列表的形式显示文本
Menu菜单控件菜单组件(下拉菜单和弹出菜单)
Menubutton菜单按钮控件用于显示菜单项
Message信息控件用于显示多行不可编辑的文本,与 Label控件类似,增加了自动分行的功能
messageBox消息框控件定义与用户交互的消息对话框
OptionMenu选项菜单下拉菜单
PanedWindow窗口布局管理组件为组件提供一个框架,允许用户自己划分窗口空间
Radiobutton单选框单项选择按钮,只允许从多个选项中选择一项
Scale进度条控件定义一个线性“滑块”用来控制范围,可以设定起始值和结束值,并显示当前位置的精确值
Spinbox高级输入框Entry 控件的升级版,可以通过该组件的上、下箭头选择不同的值
Scrollbar滚动条默认垂直方向,鼠标拖动改变数值,可以和 Text、Listbox、Canvas等控件配合使用
Text多行文本框接收或输出多行文本内容
Toplevel子窗口在创建一个独立于主窗口之外的子窗口,位于主窗口的上一层,可作为其他控件的容器

窗口常用方法:

函数说明
window.title(“my title”)接受一个字符串参数,为窗口起一个标题
window.resizable()是否允许用户拉伸主窗口大小,默认为可更改,当设置为 resizable(0,0)或者resizable(False,False)时不可更改
window.geometry()设定主窗口的大小以及位置,当参数值为 None 时表示获取窗口的大小和位置信息。
window.quit()关闭当前窗口
window.update()刷新当前窗口
window.mainloop()设置窗口主循环,使窗口循环显示(一直显示,指导窗口被关闭)
window.iconbitmap()设置窗口左上角的图标(图标是.ico文件类型)
window.config(background =“red”)设置窗口的背景色为红色,也可以接受 16 进制的颜色值
window.minsize(50,50)设置窗口被允许调整的最小范围,即宽和高各50
window.maxsize(400,400)设置窗口被允许调整的最大范围,即宽和高各400
window.attributes(“-alpha”,0.5)用来设置窗口的一些属性,比如透明度(-alpha)、是否置顶(-topmost)即将主屏置于其他图标之上、是否全屏(-fullscreen)全屏显示等
window.state(“normal”)用来设置窗口的显示状态,参数值 normal(正常显示),icon(最小化),zoomed(最大化)
window.withdraw()用来隐藏主窗口,但不会销毁窗口。
window.iconify()设置窗口最小化
window.deiconify()将窗口从隐藏状态还原
window.winfo_screenwidth() window.winfo_screenheight()获取电脑屏幕的分辨率(尺寸)
window.winfo_width() window.winfo_height()获取窗口的大小,同样也适用于其他控件,但是使用前需要使用 window.update() 刷新屏幕,否则返回值为1
window.protocol(“协议名”,回调函数)启用协议处理机制,常用协议有 WN_DELETE_WINDOW,当用户点击关闭窗口时,窗口不会关闭,而是触发回调函数。

3.tkinter创建根窗体

import tkinter

# 实例化Tk()
root_window = tkinter.Tk()
# 设置窗口title
root_window.title('TITLE')
# 设置窗口大小:宽x高,注,此处不能为 "*",必须使用 "x"
root_window.geometry('450x300')
# 更改左上角窗口的的icon图标,加载logo标
root_window.iconbitmap('D:/img/favicon.ico')
# 设置主窗口的背景颜色,颜色值可以是英文单词,或者颜色值的16进制数,除此之外还可以使用Tk内置的颜色常量
root_window["background"] = "#FFFFFF"


#进入主循环,显示主窗口
root_window.mainloop()

4.创建按钮Button

# 添加按钮,以及按钮的文本,并通过command 参数设置关闭窗口的功能
button = tkinter.Button(root, text="关闭", command=root.quit)
# 将按钮放置在主窗口内
button.place(x=200, y=260, width=200, height=30)

运行结果:

Button 控件的常用属性如下:

属性说明
anchor控制文本所在的位置,默认为中心位置(CENTER)
activebackground当鼠标放在按钮上时候,按妞的背景颜色
activeforeground当鼠标放在按钮上时候,按钮的前景色
bd按钮边框的大小,默认为 2 个像素
bg按钮的背景色
command用来执行按钮关联的回调函数。当按钮被点击时,执行该函数
fg按钮的前景色
font按钮文本的字体样样式
height按钮的高度
highlightcolor按钮控件高亮处要显示的颜色
image按钮上要显示的图片
justify按钮显示多行文本时,用来指定文本的对齐方式,参数值有 LEFT/RIGHT/CENTER
padx/padypadx 指定 x 轴(水平方向)的间距大小,pady 则表示 y轴(垂直方向)的间距大小
ipadx/ipadyipadx 指标签文字与标签容器之间的横向距离;ipady 则表示标签文字与标签容器之间的纵向距离
state设置按钮的可用状态,可选参数有NORMAL/ACTIVE/DISABLED,默认为 NORMAL
text按钮控件要显示的文本

5.创建单行文本输入框

# 新建账号文本框标签
entry = tkinter.Entry(root)

# 布局
entry.place(x=60, y=40, width=200, height=30)

# 获取单行文本框的值
entry.get()

# 插入默认文本
user_entry.insert(0, '请输入账号')

# delete清空输入框 第0个字符开始;END最后一个字符结束
text.delete("1.0", "end")

Entry 控件的常用属性如下:

6.创建多行文本输入框

# 创建一个文本控件
# width 一行可见的字符数;height 显示的行数
text = Text(root, width=50, height=30, undo=True,autoseparators=False)

# 布局
text.place(x=10, y=10, width=200, height=30)

# 获取多行文本框的值
entry.get()

# 插入文本,INSERT 光标处插入;END 末尾处插入
text.insert(INSERT, '请输入文本')

# delete清空输入框 第1行0个字符开始;END 尾行最后一个字符结束
text.delete("1.0", "end")
win.mainloop()

7.单选按钮 Radiobutton

def mess():
  print(rad_value.get())
  
# IntVar() 用于处理整数类型的变量
rad_value = ttk.IntVar()

# 根据单选按钮的 value 值来选择相应默认的选项
rad_value.set(0)

# 使用 variable 参数来关联 IntVar() 的变量 v
rad = ttk.Radiobutton(root, text="A", variable=rad_value, value=1, command=mess)
rad.place(x=200, y=70, width=100, height=50)

rad = ttk.Radiobutton(root, text="B", variable=rad_value, value=2, command=mess)
rad.place(x=200, y=120, width=100, height=50)

rad = ttk.Radiobutton(root, text="C", variable=rad_value, value=3, command=mess)
rad.place(x=200, y=170, width=100, height=50)

rad = ttk.Radiobutton(root, text="D", variable=rad_value, value=4, command=mess)
rad.place(x=200, y=230, width=100, height=50)

8.多选框 Checkbutton
9.文件选择对话框 tkinter.filedailog
10.子窗口Toplevel
11.菜单控件 Menu
12.下拉菜单 Toplevel

二、ttkbootstrap库

1.ttkbootstrap介绍

ttkbootstrap 是python的三方GUI库

2.安装方法

pip install ttkbootstrap

3.ttkbootstrap消息框

import ttkbootstrap as ttk
from ttkbootstrap.dialogs.dialogs import Messagebox
# from ttkbootstrap.constants import *

def mess():
    print('点击弹出消息')
    msg = Messagebox.okcancel(title="提示", message='是否要退出')
    print(msg)

4.ttkbootstrap进度条

import ttkbootstrap as ttk

gress = ttk.Progressbar(root,  length=200, mode='determinate')
gress.place(x=10, y=350, width=500, height=50)
gress['maximum'] = 100
gress['value'] = 50
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值