Tkinter的超强主题扩展-ttkbootstrap

news2024/12/30 2:35:30

1、前言

在上一篇文章 将Python脚本集成到GUI工具包-Tkinter 里,作者介绍了 Tkinter,并开发了测试参数组合生成器小工具,虽然功能上已经满足了所要的需求,但是页面展示方面很不美观,需要改进一下。

本篇将介绍一款 Tkinter 的超强主题扩展包-ttkbootstrap,用来美化 GUI 界面。

2、简介

Tkinter 的超强主题扩展,可实现受 Bootstrap 启发的按需现代平面风格主题。

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386      

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337 

特点:

1、内置主题:十几个精心策划的深色和浅色主题。

2、预定义样式:大量漂亮的预定义构件样式,如轮廓和圆形切换按钮。

3、简单的关键字 API:使用简单的关键字(如 primary 和 striped )应用颜色和类型,而不是使用主要的旧方法 Striped.Horizontal.TProgressbar。如果您已经使用 Bootstrap 进行 Web 开发,那么您已经熟悉了使用 css 类的这种方法。

4、许多新的小部件:ttkbootstrap 附带了几个设计精美的新小部件,如 Meter,DateEntry 和 Floodgauge。此外,对话框现在具有主题和完全可自定义性。

5、内置主题创建器:想要创建自己的主题?容易!ttkbootstrap 附带一个内置的主题创建器,使您能够轻松构建,加载,浏览和应用自己的自定义主题。        

安装:

python -m pip install ttkbootstrap

GitHub地址:

https://github.com/israel-dryer/ttkbootstrap

3、快速上手

先来一段简单示例,代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 

import ttkbootstrap as ttk
from ttkbootstrap.constants import *

root = ttk.Window(themename="superhero")

b1 = ttk.Button(root, text="Submit", bootstyle="success")
b1.pack(side=LEFT, padx=5, pady=10)

b2 = ttk.Button(root, text="Submit", bootstyle="info-outline")
b2.pack(side=LEFT, padx=5, pady=10)

root.mainloop()

 脚本运行后,弹出界面,从按钮样式可以看出已经美化了。

接下来再来一段示例,代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import ttkbootstrap as ttk

root = ttk.Window(title="公众号:AllTests软件测试", themename="flatly", size=(800, 400), resizable=(False, False))
# 获取电脑屏幕大小
print("电脑分辨率 %dx%d " % (root.winfo_screenwidth(), root.winfo_screenheight()))
# 获取窗口大小,必须先刷新一下屏幕
root.update()
print("窗口分辨率 %dx%d " % (root.winfo_width(), root.winfo_height()))
# 设置窗口处于顶层
root.attributes('-topmost', True)
# 设置窗口透明度
root.attributes('-alpha', 0.8)
# 更改左上角窗口icon图标
root.iconbitmap('C:/Users/wangmeng/Desktop/mytest/tupian.ico')
# 添加文本内容
ttk.Label(root, text="公众号:AllTests软件测试", bootstyle="inverse-danger", font=('Times', 15, 'bold italic underline')).place(x=160, y=70)
# 添加按钮
ttk.Button(root, text="关闭", bootstyle="success-outline", command=root.quit).place(x=350, y=200, width=120, height=60)
# 进入主循环,显示主窗口
root.mainloop()

 脚本运行后效果,设置了图标、文本、按钮、窗口透明度等。

控制台打印的获取分辨率信息。

4、脚本工具界面美化

如下图,之前已经完成的小工具。

 

经过代码优化,运行后界面样式如下,可以看出美观了不少,除了可以输出参数组合分组的功能,又新增了对参数全量组合的功能。

 

输入数据进行运行后,显示结果如下。

 

导出Excel,分组输出的数据。

 

导出Excel,全量输出的数据。

 

导出TXT,分组输出的数据。

 

 导出TXT,全量输出的数据。

提示信息的界面也进行了美化。

没有输入数据,直接点击运行按钮时。

没有运行直接点击导出按钮时。

 

输入错误数据,点击运行按钮时。

 

导出Excel成功提示。

 

 

导出TXT成功提示。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/842518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用罗技鼠标后 弹出当前页面的脚本发生错误AppData/Local/Temp/LogiUI/Pak/js/jquery-1.3.2.min.js解决

使用的台式机,没有蓝牙驱动,在用logi无线鼠标时,把鼠标连接插入台式机后弹出的如上图所示这个提示,无论是点是/否,还是X掉上图提示,电脑右下角的图依然存在。不习惯这丫的存在。 我重启还是有,然…

1. Git基础知识

文章目录 Git基础知识一、集中式与分布式二、中心服务器三、工作流四、分支实现五、冲突六、Fast forward七、储藏(Stashing)八、SSH 传输设置九、.gitignore 文件十、Git 命令一览十一、和远端仓库交互 Git基础知识 一、集中式与分布式 Git 属于分布式…

服务蓝图:提升和改善服务系统的工具

服务蓝图:提升和改善服务系统的工具 Service Blueprint 翻译成服务提供计划比较恰当 趣讲大白话:精细耕耘,才有好体验 【趣讲信息科技249期】 **************************** 西方擅长的是工具和方法 把一件事情透过工具和方法做到人人能懂 日…

Day 74:通用BP神经网络 (1. 集中管理激活函数)

代码: package dl;/*** Activator.*/public class Activator {/*** Arc tan.*/public final char ARC_TAN a;/*** Elu.*/public final char ELU e;/*** Gelu.*/public final char GELU g;/*** Hard logistic.*/public final char HARD_LOGISTIC h;/*** Identit…

web集群学习:源码安装nginx配置启动服务脚本、IP、端口、域名的虚拟主机

目录 1、源码安装nginx,并提供服务脚本。 2、配置基于ip地址的虚拟主机 3、配置基于端口的虚拟主机 4、配置基于域名的虚拟主机 1、源码安装nginx,并提供服务脚本。 1、源码安装会有一些软件依赖 (1)检查并安装 Nginx 基础依赖…

探索远程访问内网群晖NAS 6.X(使用独立域名)【内网穿透】

使用自己的域名远程访问内网群晖NAS 6.X【内网穿透】 文章目录 使用自己的域名远程访问内网群晖NAS 6.X【内网穿透】 在之前的文章中,我们向大家演示了如何使用cpolar,创建一条固定的、能够在公共互联网登录内网群晖NAS的数据隧道。这条隧道已经能够应对…

新能源汽车交流充电桩控制主板的功能维度

新能源汽车交流充电桩控制主板的功能维度 交流充电桩主板是电动汽车充电站的关键组件,它负责控制充电过程,保护设备和电网免受电动汽车充电的冲击。它具有控制、保护、检测、报警和记录等功能,可以有效地控制充电过程,保证交流充电…

防火墙第五次作业

1. 什么是恶意软件? 恶意软件官方的一个定义:恶意软件 (Malware) 从“恶意”(malicious) 和“软件”(software) 这两个词合并而来,是一个通用术语,可以指代病毒、蠕虫、特洛伊木马、勒索软件、间谍软件、广告软件和其他类型的有害…

java 版本企业招标投标管理系统源码+多个行业+tbms+及时准确+全程电子化tbms

​ 功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查…

图像 检测 - DETR: End-to-End Object Detection with Transformers (arXiv 2020)

图像 检测 - DETR: End-to-End Object Detection with Transformers - 端到端目标检测的Transformers(arXiv 2020) 摘要1. 引言2. 相关工作2.1 集预测2.2 Transformers和并行解码2.3 目标检测 3. DETR模型References 声明:此翻译仅为个人学习…

【Grafana】中文界面配置 v10.0.3

比如通过 docker run -d -p 3000:3000 -v /e/code/monitor/grafana/grafana.ini.txt:/etc/grafana/grafana.ini grafana/grafana运行一个容器(最新是v10.0.3)。 在 /admin/settings 可以看到 users 部分有一个 default_language 配置。 所以在挂载到 …

EC200 CAT1 拨号PPP

**硬件支持型号 点击 查看 硬件支持 详情** DTU701 产品详情 DTU702 产品详情 DTU801 产品详情 DTU802 产品详情 DTU902 产品详情 G5501 产品详情 目前 DTU系列 产品,WIFI4G拨号 ,默认开机自启动拨号。 WIFI 只需要 根据现场 修改SSID热点和密码…

智慧消防 | 气体灭火系统压力在线监测正当其时

气体灭火设备在消防安全系统中扮演着重要的角色。根据最新版的《气瓶安全技术规程》TSG23-2021规定,IG541气体钢瓶需要每3年进行一次检测。未按时进行检测可能导致压力掉压、瓶体外部锈蚀、钢瓶位置钢瓶内部腐蚀等风险,这些问题都可能对消防安全和效能产…

MySQL面试1

Mysql的面试突击1 Mysql的体系结构是什么样子的(查询语句怎么进行执行的) mysql的架构:单进程多线程的架构模式 CLient -----> Server架构 Mysql的链接方式有没有性能优化的点 2个点 查询缓存(Query Cache) MySQL 内部自带了一个缓存模…

【Nginx】静态资源部署、反向代理、负载均衡

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ nginx静态资源部署、反向代理、负载均衡 &…

laravel项目运行问题记录

一.首页404未找到 检查项目配置是否配置好 解决地址:phpstudy网站或站点创建成功,打开无响应_php打开提示站点创建成功_荒-漠的博客-CSDN博客 二.vendor目录不存在 composer未安装 解决地址:laravel安装composer依赖_荒-漠的博客-CSDN博客 三.首页可以展示 里面路径404 未配…

c++游戏制作指南(三):c++剧情类文字游戏的制作

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 🍟欢迎来到静渊隐者的csdn博文,本文是c游戏制作指南的一部🍟 🍕更多文章请点击下方链接🍕 🍨 c游戏制作指南&#x1f3…

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

SQL语句执行顺序: from–>where–>group by -->having — >select --> order 第一步:from语句,选择要操作的表。 第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的记录。 …

Redis压缩列表

区分一下 3.2之前 Redis中的List有两种编码格式 一个是LINKEDLIST 一个是ZIPLIST 这个ZIPLIST就是压缩列表 3.2之后来了一个QUICKLIST QUICKLIST是ZIPLIST和LINKEDLIST的结合体 也就是说Redis中没有ZIPLIST和LINKEDLIST了 然后在Redis5.0引入了LISTPACK用来替换QUiCKLIST中的…

Windows下使用Maven命令打包Java后台代码

文章目录 1 JDK 环境变量配置2 Maven 环境变量配置3 Maven 命令打包3.1 清除之前打好的包3.2 直接打包3.3 跳过单元测试进行打包 1 JDK 环境变量配置 在 Windows 下配置 JDK 的环境变量可以按照以下步骤进行: 首先,确保已经安装了 JDK。可以从 Oracle …