初学Python来用它制作一个简单的界面

2023-05-16

前言

很多刚开始学习python的宝子,就想着自己开始琢磨一些界面,但是吧很多都是有点难度的,自己又琢磨不透,只能把代码复制粘贴+运行

现在就带你们来了解一个制作简单界面的代码

在这里插入图片描述

ttkbootstrap 是一个基于 tkinter 的界面美化库,

使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序。

请添加图片描述

ttkbootstrap 不仅有丰富的案例,同时还有完善的官方文档,可惜是英文的

不过对于我们来说,只要用好翻译软件与提供的案例代码,一样可以轻松上手,那么接下来我们就介绍一下这个工具的使用。

准备工作

首先肯定是需要安装一下 ttkbootstrap

版本要新,最好不要用镜像源安装

pip install ttkbootstrap

win + R 输入cmd 输入安装命令 或 在pycharm中点击Terminal(终端) 输入安装命令

试手小案例

可以先来个小案例试试手

import ttkbootstrap as ttk
from ttkbootstrap.constants import *

# root = tk.Tk()  # 使用 tkinter 创建窗口对象
root = ttk.Window()  # 使用 ttkbootstrap 创建窗口对象

root.geometry('300x150')

b1 = ttk.Button(root, text="按钮 1", bootstyle=SUCCESS)  # 使用 ttkbootstrap 的组件
b1.pack(side=LEFT, padx=5, pady=10)

b2 = ttk.Button(root, text="按钮 2", bootstyle=(INFO, OUTLINE))   # OUTLINE 是指定边框线
b2.pack(side=LEFT, padx=5, pady=10)

root.mainloop()

请添加图片描述

案例实现代码

开始我们今天的案例教学

1、做个界面

完整代码点击文末名片领取

root = tk.Window(themename='litera')
root.geometry('350x500+500+500')
root.title('萌新-注册页面')
root.wm_attributes('-topmost', 1)
root.mainloop()

请添加图片描述

2、用户注册框

tk.Label(root, width=10).grid()
完整源码+v:xiaoyuanllsll
tk.Label(root, text='用户名:').grid(row=1, column=1, sticky=tk.W, pady=10)
tk.Entry(root, textvariable=username_str_var).grid(row=1, column=2, sticky=tk.W)
tk.Label(root, text='密  码:').grid(row=2, column=1, sticky=tk.W, pady=10)
tk.Entry(root, textvariable=password_str_var).grid(row=2, column=2, sticky=tk.W)

在这里插入图片描述

3、性别单选框

# 0 女 1 男 -1 保密
gender_str_var = tk.IntVar()

tk.Label(root, text='性别:').grid(row=4, column=1, sticky=tk.W, pady=10)
radio_frame = tk.Frame()
radio_frame.grid(row=4, column=2, sticky=tk.W)
tk.Radiobutton(radio_frame, text='男', variable=gender_str_var, value=1).pack(side=tk.LEFT, padx=5)
tk.Radiobutton(radio_frame, text='女', variable=gender_str_var, value=0).pack(side=tk.LEFT, padx=5)
tk.Radiobutton(radio_frame, text='保密', variable=gender_str_var, value=-1).pack(side=tk.LEFT, padx=5)

在这里插入图片描述

4、兴趣爱好

hobby_list = [
    完整源码+v:xiaoyuanllsll
    [tk.IntVar(), '吃'],
    [tk.IntVar(), '喝'],
    [tk.IntVar(), '玩'],
    [tk.IntVar(), '乐'],
]

tk.Label(root, text='兴趣:').grid(row=6, column=1, sticky=tk.W, pady=10)
check_frame = tk.Frame()
check_frame.grid(row=6, column=2, sticky=tk.W)
tk.Checkbutton(check_frame, text=hobby_list[0][1], variable=hobby_list[0][0]).pack(side=tk.LEFT, padx=5)
tk.Checkbutton(check_frame, text=hobby_list[1][1], variable=hobby_list[1][0], bootstyle="square-toggle").pack(
    side=tk.LEFT, padx=5)
tk.Checkbutton(check_frame, text=hobby_list[2][1], variable=hobby_list[2][0], bootstyle="round-toggle").pack(
    side=tk.LEFT, padx=5)
tk.Checkbutton(check_frame, text=hobby_list[3][1], variable=hobby_list[3][0]).pack(side=tk.LEFT, padx=5)

在这里插入图片描述

5、生日

tk.Label(root, text='生日:').grid(row=7, column=1, sticky=tk.W, pady=10)
data_entry = tk.DateEntry()
data_entry.grid(row=7, column=2, sticky=tk.W, pady=10)
print(data_entry.entry.get())

在这里插入图片描述

6、提交信息按钮

tk.Label(root, text="").grid(row=9, column=2, sticky=tk.W)
button = tk.Button(root, text='提交', width=20)
button.grid(row=10, column=2, sticky=tk.W)

在这里插入图片描述

7、保存数据

def get_info():
    data = {
        '用户名': username_str_var.get(),
        '密码': password_str_var.get(),
        '性别': gender_str_var.get(),
        '兴趣': [h for v, h in hobby_list if v.get()],
        '生日': data_entry.entry.get()
    }
    print(data)
    with open('1.txt', mode='a') as f:
        f.write('\n')
        f.write(str(data))
button.config(command=get_info)

在这里插入图片描述

在这里插入图片描述

最后

文章分享到这里就结束了

有什么关于Python不懂的问题可以评论区留言哦

我们下一篇文见~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初学Python来用它制作一个简单的界面 的相关文章

  • 将字符串转换为浮点数列表(在 python 中)

    出于数据存储的目的 我尝试从 txt 文件恢复浮点列表 从字符串中可以看出 a 1 3 2 3 4 5 我想恢复 a 1 3 2 3 4 5 我期待一个简单的解决方案 例如list a 但我找不到类似的东西 Use the AST模块 Ex
  • pip 安装最新的依赖版本

    当我使用安装包时pip install e 它仅安装不满足的依赖项并忽略依赖项升级 如何在每次运行时安装最新的依赖版本pip install e 我尝试过使用pip install upgrade e 但是使用这个选项没有任何改变 我仍然得
  • sudo 和 pip 不在同一路径上

    pip and sudo不在我的计算机上的同一路径上 因此当 基本上一直 我需要运行这两个命令时 如下所示 sudo pip install xxx I get sudo pip command not found pip下载软件包 但由于
  • Django 营业时间

    我想添加诊所的营业时间 我已经对此进行了调查在 Django 中实现 开放时间 的任何现有解决方案 https stackoverflow com questions 8128143 any existing solution to imp
  • 如何测试该变量不等于多个事物?

    这是我的一段代码 choice while choice 1 and choice 2 and choice 3 choice raw input pick 1 2 or 3 if choice 1 print 1 it is elif c
  • pandas DataFrame 中行的高效成对比较

    我目前正在处理一个较小的数据集 大约 900 万行 不幸的是 大多数条目都是字符串 即使强制类别 框架在内存中也只有几 GB 我想做的是将每一行与其他行进行比较 并对内容进行直接比较 例如 给定 A B C D 0 cat blue old
  • 如何使用 Python 在表单中选择选项?

    我想知道如何以格式如下的形式选择选项 td align left td
  • python os.fork 使用相同的 python 解释器吗?

    据我所知 Python 中的线程使用相同的 Python 解释器实例 我的问题是与创建的流程相同os fork 或者每个进程创建的os fork有自己的翻译吗 每当你 fork 时 整个 Python 进程都会在内存中复制 包括Python
  • 使用最新值进行采样

    考虑以下系列 created at 2014 01 27 21 50 05 040961 80000 00 2014 03 12 18 46 45 517968 79900 00 2014 09 05 20 54 17 991260 636
  • 如何在 tkinter 后台运行函数[重复]

    这个问题在这里已经有答案了 我是 GUI 编程新手 我想用 tkinter 编写一个 Python 程序 我想要它做的就是在后台运行一个可以通过 GUI 影响的简单函数 该函数从 0 计数到无穷大 直到按下按钮为止 至少这是我想要它做的 但
  • 在添加数据之前使用 Python gdata 清除工作表中的行

    我有一个 Google 电子表格 我使用 python 脚本和 gdata 库填充值 如果我多次运行脚本 它会将新行附加到工作表中 我希望脚本在填充之前首先清除行中的所有数据 这样每次运行时我都会有一组新的数据脚本 我尝试过使用 Updat
  • 哈希 freezeset 与排序元组

    在 Python 中 给定一组可比较的 可散列的元素s 散列是否更好frozenset s or tuple sorted s 这取决于你在做什么 创建一个更快frozenset 比排序tuple but frozenset占用的内存比tu
  • 数据类和属性装饰器

    我一直在阅读 Python 3 7 的数据类 作为命名元组的替代品 我通常在必须将数据分组到结构中时使用它 我想知道数据类是否与属性装饰器兼容 以便为数据类的数据元素定义 getter 和 setter 函数 如果是这样 是否在某处进行了描
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • 如何使用 QAbstractTableModel(模型/视图)将数据设置到 QComboBox?

    我希望能够设置itemData of a combobox当使用填充时QAbstractTableModel 但是 我只能从模型返回一个字符串data method 通常 当不使用模型时 可以像这样执行 Set text and data
  • 将整数转换为特定格式的十六进制字符串

    我是 python 新手 有以下问题 我需要将整数转换为 6 个字节的十六进制字符串 例如 281473900746245 gt xFF xFF xBF xDE x16 x05 十六进制字符串的格式很重要 int 值的长度是可变的 格式 0
  • 如何通过 API Gateway 使用事件调用类型调用 Lambda 函数?

    文件说 默认情况下 Invoke API 采用 RequestResponse 调用类型 您可以选择通过将 Event 指定为 InitationType 来请求异步执行 因此 我可以发送到我的函数 python 的就是到处都是 Inspi
  • 为什么我的 Python 散点图不起作用?

    我使用 pylab 创建了一个非常简单的散点图 pylab scatter engineSize fuelMile pylab show 该程序的其余部分不值得发布 因为正是该行给我带来了问题 当我将 散点 更改为 绘图 时 它会绘制数据图
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种

随机推荐

  • 【51单片机】用汇编语言实现点灯、闪烁

    今天刚学了用c语言点灯 xff0c 那么我就在想可不可试一下用汇编语言来进行点灯 xff08 来自点灯攻城狮的手动狗头 xff09 最简单的是点灯 xff0c 当单片机引脚P2口连接的是LED时 CLR P2 0 这里的意思时将P2 0引脚
  • M.2接口固态硬盘安装WIN7系统

    固态硬盘的好处不用说了 xff0c 大家都明白 前段时间买电脑 xff0c 才发现固态硬盘也分门别类 xff0c 有SATA接口 xff0c 也有M 2接口的 xff0c M 2接口的还分PCIE通道和SATA通道的 xff0c 弄不好就是
  • IDEA开发java web项目:在多个git仓库,多个模块下,IDEA build,debug以及maven package等各种问题

    文章目录 背景基本问题明确目标关于maven的快照版本 xff1a SNAPSHOT在IDEA中执行maven命令maven的离线工作模式 xff08 work offline xff09 IDEA在build的时候 xff0c 到底选择的
  • 判断N数码问题是否有解

    http acm hdu edu cn showproblem php pid 61 3600 题意 xff1a 给定一个N数码的初始状态 xff0c 问你是否可以到达终点状态 分析 xff1a 先从8数码分析 xff0c 把八数码的初始状
  • 大疆RoboMaster技术总监:我是如何成为一名机器人工程师的

    作者 大疆创新RoboMaster技术总监YY硕 前言 很多朋友私信问我对机器人和人工智能感兴趣 xff0c 该怎么展开学习 最近稍微有点空 xff0c 我写写我的看法 两年前 xff0c 我在知乎回答如何定义 机器人 xff1f YY硕的
  • mysql语言练习题

    教学管理数据库的三个基本表 S SNO SNAME SEX AGE SDEPT SC SNO CNO GRADE C CNO CNAME CDEPT TNAME 试用SQL查询语句表达下列查询 xff1a 1 查询 王志强 所授课程的课程号
  • C语言关键字以及-格式输入输出中“%d,%o,%x,%e,%f”等的含义

    32个关键字 xff1a 数据类型13个 xff1a void signed unsigned short long int float double char enum struct union typedef Bool Imaginar
  • Python制作游戏 — 贪吃蛇

    哈喽 xff0c 我是小圆 我又来分享关于python制作的小游戏啦 今天这个可是当年真正意义上的第一款手机游戏 贪吃蛇 ok xff0c 现在来讲解一下用python做这个游戏的所有步骤 xff0c 超详解说 xff01 据说是贪吃蛇游戏
  • 【下班神器】python写自动关机程序并打包成exe文件

    文章目录 前言实现效果实现步骤 x1f4bb 模块导入 x1f4bb 窗口设置 x1f4bb 创建一个文本标签 x1f4bb 创建一个文本标签和时间栏框 x1f4bb 设置该文件的字体样式和大小 x1f4bb 创建一个日期时间文本框 xff
  • 【Python案例】python批量采集下载dy视频

    嗨嗨 xff0c 大家好 我是小圆 有一说一 某yin里可是人美风景美啊 今天就来抓一抓某yin的小姐姐吧 环境使用 Python 3 8Pycharm谷歌浏览器谷歌驱动 模块使用 requests gt gt gt pip install
  • Python打包exe文件并换图标【最强版教程】

    嗨嗨 xff0c 大家好 xff0c 我是小圆 今天又想来分享一个Python打包exe文件的教程 这次是最强终极版 接下来请欣赏我的表演 Python打包exe可执行文件 xff0c 并给它换一个图标 首先把你的代码准备好 xff0c 尽
  • Python实现秒杀抢购某宝商品,不再害怕双十一抢不到了

    前言 马上就要双十一咯 xff0c 给你们展示一下我在618干的大事 xff0c 直接用Python抢购商品 今天就来分享给你们吧 这又快要到付尾款的日子咯 xff0c 有些哥们需要送礼物给对象的 xff0c 赶紧买这些预售的商品吧 xff
  • 用Python来表白,把情书写进她的照片里

    前言 这不已经十一月了 xff0c 22年马上就过完了 xff0c 各位兄弟有对象了吗 xff0c 现在就是缺钱还缺对象 退一步来说 xff0c 有心仪的人吗啊 xff0c 如果有的话 xff0c 看看这篇 程序员的表白小妙招吧 实现步骤
  • 用Python采集球员信息,成功预测到了球赛胜负?

    前言 嗨嗨 xff0c 最近看球赛的朋友多吗 emm怎么说 xff0c 我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌 xff0c 自己对这些球员也不是很熟悉 xff0c 索性叫我的好同事帮我用Python采集了各国球员的一些信息 xff0
  • Python制作粒子烟花,提前开始跨年?

    前言 跨年倒计时20天 xff1f 我已经开始整烟花了 xff0c 虽然不是很好看吧 xff0c 但是也能将就看看 x1f625 这个的背景图 xff0c 音乐 xff0c 还有文字都是可以自己修改的哦 效果展示 导入库 span clas
  • 最简易的教程 -一篇文章教会你 用Python打包文件

    前言 嗨嗨 xff0c 好久不见 xff0c 我是 我叫 emmm你们好 我是一堆英文字母 xff08 名字乱打的不好yi shi xff09 看到文章的人多不多 xff0c 我不知道 xff0c 招呼我还是要打一个的 x1f44d 今天文
  • 10-26 查询成绩最高的前三名同学(MSSQL)

    本题目要求编写SQL语句 xff0c 查询 C语言 课程成绩最高的前三名同学 提示 xff1a MSSQLServer 评测SQL语句 表结构 请在这里写定义表结构的SQL语句 例如 xff1a 学生表 CREATE TABLE stu s
  • 如何用python代码,更改照片尺寸,以及更换照片底色

    前言 python浅浅替代ps xff1f 如何用代码来p证件照并且更换底色 xff1f 唉 xff0c 有个小姐姐给我扔了张照片 xff0c 叫我帮忙给她搞成证件照的尺寸还得换底色 xff0c 她说自己忙的很 可惜电脑上没有ps只有pyc
  • 五一回家没票?给你分享这个用Python制作出来的查票抢票脚本

    前言 有人想去武汉 xff0c 重庆 xff0c 成都玩的吗 xff0c 我五一想去 xff0c 但是奈何公司假期一直没有公布 xff0c 具体假期耶不知道几天 xff0c 结果今晚上知道了 xff0c 然后马上点开我的12306 xff0
  • 初学Python来用它制作一个简单的界面

    前言 很多刚开始学习python的宝子 xff0c 就想着自己开始琢磨一些界面 xff0c 但是吧很多都是有点难度的 xff0c 自己又琢磨不透 xff0c 只能把代码复制粘贴 43 运行 现在就带你们来了解一个制作简单界面的代码 ttkb