python使用tkinter和ttkbootstrap制作UI界面(一)

2024-04-19 15:28

本文主要是介绍python使用tkinter和ttkbootstrap制作UI界面(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

标题使用python制作UI界面,可以选用tkinter库和ttkbootstrap库编写,首先主题框架如下:

在这里插入图片描述
新建ui_test.py文件编写主体界面,新建test_one.py和test_two.py编写分界面,以下先进行主体界面编写,代码如下:

主体框架

import ttkbootstrap
from tkinter import Frameclass UiTest(object):def __init__(self):self.window = ttkbootstrap.Window()def main_interface(self):"""测试主界面"""# 设置标题self.window.title('测试UI界面')# 屏幕的尺寸大小sw = self.window.winfo_screenwidth()sh = self.window.winfo_screenheight()# 设置UI界面的高度和宽度ww = 1000wh = 700# 窗口居中设置x = (sw - ww) / 2y = (sh - wh) / 2self.window.geometry("%dx%d+%d+%d" % (ww, wh, x, y))# 设置窗口是否可以变化长宽,默认可变self.window.resizable(width=False, height=False)def run_main(self):self.main_interface()self.window.mainloop()if __name__ == '__main__':ui_test = UiTest()ui_test.run_main()

运行界面如下:
在这里插入图片描述

Notebook组件应用

        """多窗口设置"""all_notebook = ttkbootstrap.Notebook(self.window)all_notebook.pack(padx=10, pady=5, fill=ttkbootstrap.BOTH, expand=True)self.frame_one = Frame(all_notebook)self.frame_two = Frame(all_notebook)all_notebook.add(self.frame_one, text='测试界面一')all_notebook.add(self.frame_two, text='测试界面二')

效果如下:
在这里插入图片描述

Labelframe组件应用

        """Labelframe组件"""argument_info = ttkbootstrap.Labelframe(self.frame_one, text="参数信息", width=960, height=640, labelanchor="n")argument_info.place(x=10, y=10)

效果如下:
在这里插入图片描述

Label组件应用

        """Label组件"""tk.Label(argument_info, text="文字输入:", font=("微软雅黑", 12)).place(x=10, y=10)

效果如下:
在这里插入图片描述

Entry组件应用

        """Entry组件"""project_code = tk.Entry(argument_info, font=('微软雅黑', 12), width=35)project_code.place(x=110, y=10)

效果如下:
在这里插入图片描述

Button组件应用

        """Button组件"""select_button = ttkbootstrap.Button(argument_info, text="按键", bootstyle="success")select_button.place(x=600, y=10)

效果如下:

在这里插入图片描述

Radiobutton组件应用

        """Radiobutton组件"""select_cell = tk.StringVar()select_cell.set("单选建")select_all_channel_test = ttkbootstrap.Radiobutton(argument_info, text="单选建", variable=select_cell,value="单选建", bootstyle="success-round-toggle")select_all_channel_test.place(x=10, y=100)

效果如下:
在这里插入图片描述

Checkbutton组件

        """Checkbutton组件"""# 适合单个多选键或少量多选键global select_switchselect_switch = IntVar()select_switch.set(0)select_switch_checkbutton = ttk.Checkbutton(argument_info, text="多选键", variable=select_switch,offvalue=0, onvalue=1)select_switch_checkbutton.place(x=100, y=100)# 大量多选键global switch_list_front_oneswitch_list_front_one = [int(x) for x in range(1, 5)]for i in range(1, 5):switch_list_front_one[i - 1] = StringVar()ttk.Checkbutton(argument_info, text=i, variable=switch_list_front_one[i - 1], offvalue=f"关闭{i}",onvalue=f"开启{i}").place(x=10 + 50 * (i - 1), y=150)

效果如下:
在这里插入图片描述
ui_test.py中写入主界面代码,代码如下:

import ttkbootstrap
from tkinter import Framefrom ui_show.test_one import UiTestOneclass UiTest(object):def __init__(self):self.window = ttkbootstrap.Window()self.frame_one = Frame()self.frame_two = Frame()def main_interface(self):"""测试主界面"""# 设置标题self.window.title('测试UI界面')# 屏幕的尺寸大小sw = self.window.winfo_screenwidth()sh = self.window.winfo_screenheight()# 设置UI界面的高度和宽度ww = 1000wh = 700# 窗口居中设置x = (sw - ww) / 2y = (sh - wh) / 2self.window.geometry("%dx%d+%d+%d" % (ww, wh, x, y))# 设置窗口是否可以变化长宽,默认可变self.window.resizable(width=False, height=False)"""多窗口设置"""all_notebook = ttkbootstrap.Notebook(self.window)all_notebook.pack(padx=10, pady=5, fill=ttkbootstrap.BOTH, expand=True)self.frame_one = Frame(all_notebook)self.frame_two = Frame(all_notebook)all_notebook.add(self.frame_one, text='测试界面一')all_notebook.add(self.frame_two, text='测试界面二')def run_main(self):self.main_interface()ui_test_one = UiTestOne(self.frame_one)ui_test_one.show_interface()self.window.mainloop()if __name__ == '__main__':ui_test = UiTest()ui_test.run_main()

test_one.py中写入界面一代码,代码如下:

import ttkbootstrap
import tkinter as tkfrom tkinter import ttk
from tkinter import IntVar, StringVarclass UiTestOne(object):def __init__(self, window):self.frame_one = windowdef show_interface(self):"""Labelframe组件"""argument_info = ttkbootstrap.Labelframe(self.frame_one, text="参数信息", width=960, height=640, labelanchor="n")argument_info.place(x=10, y=10)"""Label组件"""tk.Label(argument_info, text="文字输入:", font=("微软雅黑", 12)).place(x=10, y=10)"""Entry组件"""project_code = tk.Entry(argument_info, font=('微软雅黑', 12), width=35)project_code.place(x=110, y=10)"""Button组件"""select_button = ttkbootstrap.Button(argument_info, text="按键", bootstyle="success")select_button.place(x=600, y=10)"""Radiobutton组件"""select_cell = tk.StringVar()select_cell.set("单选建")select_all_channel_test = ttkbootstrap.Radiobutton(argument_info, text="单选建", variable=select_cell,value="单选建", bootstyle="success-round-toggle")select_all_channel_test.place(x=10, y=100)"""Checkbutton组件"""# 适合单个多选键或少量多选键global select_switchselect_switch = IntVar()select_switch.set(0)select_switch_checkbutton = ttk.Checkbutton(argument_info, text="多选键", variable=select_switch,offvalue=0, onvalue=1)select_switch_checkbutton.place(x=100, y=100)# 大量多选键global switch_list_front_oneswitch_list_front_one = [int(x) for x in range(1, 5)]for i in range(1, 5):switch_list_front_one[i - 1] = StringVar()ttk.Checkbutton(argument_info, text=i, variable=switch_list_front_one[i - 1], offvalue=f"关闭{i}",onvalue=f"开启{i}").place(x=10 + 50 * (i - 1), y=150)

篇幅有限,界面二会更新更多组件的编写方式,有疑问欢迎找博主进行答疑,我是活动的笑脸,希望大家积极点赞,本篇到此结束。

这篇关于python使用tkinter和ttkbootstrap制作UI界面(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917929

相关文章

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案