Tkinter教程(每天半小时,3天彻底掌握Tkinter)day3

简介: Tkinter教程(每天半小时,3天彻底掌握Tkinter)day3

教程环境

运行系统:win10


开发工具:PyCharm Community Edition 2021.3.1


Combobox控件

下拉菜单需要单独引包


from tkinter import ttk

使用方法


combox = ttk.Combobox(win)
combox['value'] = ('功能1', '功能2', '功能3', '功能4', '功能5')
combox.current(0)
combox.grid(row=7, column=0)
# 获取combox的选取值
def func():
    out_text.insert(INSERT, combox.get())
Button(win, text="获取combox值", command=func).grid(row=9, column=0)

我们可以根据获取到的combox值进行做具体的判断,我这里直接combox.get()获取了,判断完成根据对应的选项执行对应函数即可。

image.png



Tkinter单选框Radiobutton

# 整数类型的变量
v = IntVar()
def funcRadio():
    out_text.insert(INSERT, v.get())
Radiobutton(win, text="基础面板拼接1", fg='blue', font=('黑体', '12', 'bold'), variable=v, value=0, command=funcRadio,
            indicatoron=False).grid(row=10, column=0)
Radiobutton(win, text="基础面板拼接2", fg='blue', font=('黑体', '12', 'bold'), variable=v, value=1, command=funcRadio,
            indicatoron=False).grid(row=10, column=1)
Radiobutton(win, text="基础面板拼接3", fg='blue', font=('黑体', '12', 'bold'), variable=v, value=2, command=funcRadio,
            indicatoron=False).grid(row=10, column=2)
Radiobutton(win, text="基础面板拼接4", fg='blue', font=('黑体', '12', 'bold'), variable=v, value=3, command=funcRadio,
            indicatoron=False).grid(row=10, column=3)

这里我采用的数字value与combox一样,根据选项进行功能的使用即可,单选按钮这里显示的是按钮样式,功能是一样的没有区别,就是有两个状态,一个是按下,一个是取消。

image.png



Tkinter复选框Checkbutton

# 新建整型变量
CheckVar1 = IntVar()
CheckVar2 = IntVar()
CheckVar3 = IntVar()
# 获取check值
def funcChick():
    if (CheckVar1.get() == 0 and CheckVar2.get() == 0 and CheckVar3.get() == 0):
        s = '没选功能'
    else:
        s1 = "富贵祥和" if CheckVar1.get() == 1 else ""
        s2 = "康寿百年" if CheckVar2.get() == 1 else ""
        s3 = "温馨和煦" if CheckVar3.get() == 1 else ""
        s = "您选择了%s %s %s" % (s1, s2, s3)
    out_text.insert(INSERT, s)
# 设置三个复选框控件,使用variable参数来接收变量
Checkbutton(win, text="富贵祥和", font=('雅黑', 15, 'bold'), variable=CheckVar1, onvalue=1, offvalue=0, command=funcChick,
            indicatoron=False).grid(row=12, column=0)
Checkbutton(win, text="康寿百年", font=('雅黑', 15, 'bold'), variable=CheckVar2, onvalue=1, offvalue=0, command=funcChick,
            indicatoron=False).grid(row=12, column=1)
Checkbutton(win, text="温馨和煦", font=('雅黑', 15, 'bold'), variable=CheckVar3, onvalue=1, offvalue=0, command=funcChick,
            indicatoron=False).grid(row=12, column=2)

复选框也是有按上和按下两个状态,也就是0与1的替换,注意判断数值即可对功能进行处理。


image.png


python进度条

进度条。这里会随时更改面板样式需要添加一个win.update()


def funcPprogressgoto():
    from time import sleep
    for i in range(0, 90):
        sleep(0.02)
        pro["value"] += 1
        win.update()
Button(win, text='测试进度条', command=funcPprogressgoto).grid(row=13, column=0)
pro = ttk.Progressbar(win, length=200, cursor='spider',
                      mode="determinate",
                      orient=HORIZONTAL)
pro.grid(row=13, column=1)

这里不一定需要给多线程,如果看情况,如果执行内容过多依然需要使用多线程处理,否则占用主线程将无法正常执行其它程序。


image.png




具体布局看功能需求啊,我挨个往下排序列比较麻烦我就没改。


总结

如果你能跟着敲到这里基本就差不多了,基础的样式肯定能拼接,咱们一做一般的程序功能肯定是够用了的。


所有的布局都可以采用grid的方式进行布局,可能会有些不太好看,但是在功能上基本上我们能搞定所有内容了,这里我没有搞listbox因为使用text很多时候更方便。

相关文章
|
SQL Python
基于 sqli-labs-Pass08,利用Python 实现 SQL盲注(含二分法)
基于 sqli-labs-Pass08,利用Python 实现 SQL盲注(含二分法)
|
自然语言处理 Linux iOS开发
【推荐】博客创作必备工具✨
为了帮助博主们更高效地创作和发布内容,本文汇总了从 Markdown 编辑器、截图工具、绘图工具到发布工具的写博客必备工具。这些工具涵盖了文本编辑、图片处理、图表绘制、GIF 录制和多平台发布等多个方面。无论你是初学者还是经验丰富的创作者,这些工具都会为你提供全方位的支持,助力你轻松高效地完成博客创作和发布。
472 64
|
10月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
250 1
|
jenkins 测试技术 持续交付
30个接口自动化测试面试题,赶紧收藏
接口自动化测试是使用工具验证接口功能、性能和安全性的自动化过程。它能提升测试效率,减少人工工作量,及时发现问题。常见工具包括Postman、SoapUI和JMeter。测试涉及需求分析、测试计划、用例设计、脚本编写、执行、报告生成及问题跟踪。测试用例涵盖输入数据、预期结果等,脚本包含请求和响应细节。断言验证接口正确性,数据驱动测试使用多数据验证,性能测试检查响应时间等,安全测试关注认证和加密,Mock测试模拟数据,集成测试验证接口交互,回归测试确保修改未破坏原有功能,异常处理确保测试稳定性,并发和压力测试检查系统负载,持续集成通过工具如Jenkins保证软件质量。
752 3
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
1545 2
|
网络协议 Linux Shell
如何在 CentOS 中配置 SSH 服务的 TCP 端口转发
如何在 CentOS 中配置 SSH 服务的 TCP 端口转发
609 0
解决Java中的EOFException异常的方法
解决Java中的EOFException异常的方法
|
Java 测试技术 API
使用JUnit进行Java单元测试
【4月更文挑战第16天】本文介绍了如何使用JUnit进行Java单元测试。JUnit是一个由Erich Gamma和Kent Beck创建的开源Java测试框架,用于简化测试用例编写并自动执行测试。文章涵盖了JUnit的基本结构,如使用`@Test`注解标记测试方法,以及断言方法如`assertEquals`和`assertTrue`来验证测试结果。此外,还讨论了测试套件的创建,用于组合运行多个测试类,并介绍了模拟对象的概念,允许开发者使用Mockito等库来模拟依赖对象。学习和应用JUnit能提升代码质量并确保软件稳定性。
240 3
|
消息中间件 Dubbo Java
24年国内头条最牛的Java面试八股文1000集,不接受反驳!
年后这个时间段, 找工作面试不要停!! 很多朋友据我了解,技术水平和工作经验都很不错,但是面试频频败北。 大家复盘下来发现问题不严重,但是很普遍,10个人里面8个都存在,那就是面试前不做准备。 技巧和避坑先不论,面试题型就不熟悉,没有系统过下大厂真题和必问项目,真正对线上面试官时被打的措手不及。 想要从容应对,就要提前建立把握和自信,这不但来自自身的技术能力水平,更来源于对面试时将要发生的各种情况有预判,做到心中有数。 这里整理了一套跳槽涨薪大厂Java知识点解析及面试题解析,涵盖20个技术栈的大厂面试题及详解文档,各大厂技术重点、面试难点、进阶要点,帮助大家“临阵磨枪”,如有需要的
|
编解码 前端开发 人机交互
Tkinter保姆级教程(上)(一)
Tkinter保姆级教程(上)
607 0
Tkinter保姆级教程(上)(一)