Python GUI界面tkinter和ttkbootstrap

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python