Python GUI界面tkinter和ttkbootstrap
创始人
2024-05-12 01:14:49
0

Python GUI界面tkinter和ttkbootstrap

    • 一、tkinter库
      • 1.tkinter介绍
      • 2.tkinter常用控件和方法:
      • 3.tkinter创建根窗体
      • 4.创建按钮Button
      • 5.创建单行文本输入框
      • 6.创建多行文本输入框
      • 7.单选按钮 Radiobutton
    • 二、ttkbootstrap库
      • 1.ttkbootstrap介绍
      • 2.安装方法
      • 3.ttkbootstrap消息框
      • 4.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 ttkgress = ttk.Progressbar(root,  length=200, mode='determinate')
gress.place(x=10, y=350, width=500, height=50)
gress['maximum'] = 100
gress['value'] = 50

相关内容

热门资讯

美国不提安卓系统华为,迈向自主... 华为与美国:一场关于技术、市场与政策的较量在当今这个数字化的世界里,智能手机已经成为我们生活中不可或...
安卓系统怎么打开ppt,选择文... 你有没有遇到过这种情况:手里拿着安卓手机,突然需要打开一个PPT文件,却怎么也找不到方法?别急,今天...
谷歌退回到安卓系统,探索创新未... 你知道吗?最近科技圈可是炸开了锅,谷歌竟然宣布要退回到安卓系统!这可不是一个简单的决定,背后肯定有着...
安卓系统待机耗电多少,深度解析... 你有没有发现,手机电量总是不经用?尤其是安卓系统,有时候明明没怎么用,电量就“嗖”的一下子就下去了。...
小米主题安卓原生系统,安卓原生... 亲爱的手机控们,你是否曾为手机界面单调乏味而烦恼?想要给手机换换“衣服”,让它焕然一新?那就得聊聊小...
voyov1安卓系统,探索创新... 你有没有发现,最近你的手机是不是变得越来越流畅了?没错,我要说的就是那个让手机焕发青春的Vivo V...
电脑刷安卓tv系统,轻松打造智... 你有没有想过,家里的安卓电视突然变得卡顿,反应迟钝,是不是时候给它来个“大保健”了?没错,今天就要来...
安卓系统即将要收费,未来手机应... 你知道吗?最近有个大消息在科技圈里炸开了锅,那就是安卓系统可能要开始收费了!这可不是开玩笑的,这可是...
雷凌车载安卓系统,智能出行新体... 你有没有发现,现在的汽车越来越智能了?这不,我最近就体验了一把雷凌车载安卓系统的魅力。它就像一个聪明...
怎样拍照好看安卓系统,轻松拍出... 拍照好看,安卓系统也能轻松搞定!在这个看脸的时代,拍照已经成为每个人生活中不可或缺的一部分。无论是记...
安卓车机系统音频,安卓车机系统... 你有没有发现,现在越来越多的汽车都开始搭载智能车机系统了?这不,咱们就来聊聊安卓车机系统在音频方面的...
老苹果手机安卓系统,兼容与创新... 你手里那台老苹果手机,是不是已经陪你走过了不少风风雨雨?现在,它竟然还能装上安卓系统?这可不是天方夜...
安卓系统7.dns,优化网络连... 你有没有发现,你的安卓手机最近是不是有点儿“慢吞吞”的?别急,别急,让我来给你揭秘这可能与你的安卓系...
安卓手机系统怎么加速,安卓手机... 你有没有发现,你的安卓手机最近变得有点“慢吞吞”的?别急,别急,今天就来给你支几招,让你的安卓手机瞬...
小米note安卓7系统,探索性... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,小米Note这款手机,自从升级到了安卓7...
安卓和鸿蒙系统游戏,两大系统游... 你有没有发现,最近手机游戏界可是热闹非凡呢!安卓和鸿蒙系统两大巨头在游戏领域展开了一场激烈的较量。今...
安卓手机没有系统更,揭秘潜在风... 你有没有发现,现在安卓手机的品牌和型号真是五花八门,让人挑花了眼。不过,你知道吗?尽管市面上安卓手机...
充值宝带安卓系统,安卓系统下的... 你有没有发现,最近手机上的一款充值宝APP,在安卓系统上可是火得一塌糊涂呢!这不,今天就来给你好好扒...
安卓系统8.0镜像下载,轻松打... 你有没有想过,想要给你的安卓手机升级到最新的系统,却不知道从哪里下载那个神秘的安卓系统8.0镜像呢?...
安卓系统修改大全,全方位修改大... 你有没有想过,你的安卓手机其实是个大宝藏,里面藏着无数可以让你手机焕然一新的秘密?没错,今天就要来个...