(十四)python tkinter GUI简单化编程之七段数码显示控件1

在这里插入图片描述


python tkinter GUI简单化编程之文章目录(点击可传送)

python tkinter GUI简单化编程之文章目录


一、自我介绍、封装及使用方法

本系列文章将先以封装python的tkinter库为目标进行讲解,后续将会再封装其他python的GUI库。具体可从第一章开始浏览,后续不再阐述。


二、七段数码显示控件1

现在,我们在PythonGui.pyw再添加以下代码封装七段数码显示控件1 ,该控件目前有四种类型,本文先讲述第一类,后续文章将会持续更新。

请注意:在PythonGui.pyw开头添加import datetime语句,因为本文需要用到datetime模块,且不要删除以前的代码。

def SS_3创建七段数码显示控件1(放置属性,数码属性,数据属性):
    '''
    注意:七段数码显示控件1只能显示一位数据
    放置属性为一个列表,分别代表 0.放置的窗口 1.放置于窗口的行 2.放置于窗口的列 
    数码属性为一个列表,分别代表 0.数码的背景颜色 1.数码宽度
    数据属性为一个列表,分别代表 0.当前数据 1.更新速度
    '''
    放置窗体 = 放置属性[0]
    放置位置 = 放置属性[1:]
    背景颜色 = 数码属性[0]
    画布宽度 = 数码属性[1]
    当前数据 = 数据属性[0]
    更新速度 = 数据属性[1]
    try:
        当前数据.get()
    except:
        messagebox.showerror('函数错误','当前数据的类型定义请使用本封装库的类型,请检查!')
        return
    画布高度 = 画布宽度*2*0.9
    段宽 = 画布宽度/10
    子窗口 = tk.Frame(放置窗体,bg =背景颜色,height = 1,width = 1 )
    子窗口.grid(row = 放置位置[0],column = 放置位置[1],padx = 2,pady= 2)
    画布 = tk.Canvas(子窗口,width = 画布宽度,height = 画布高度, bg =背景颜色)
    画布.pack(fill = tk.BOTH)
    中心宽度 = 画布宽度/2*1.025
    中心高度 = 画布高度/2*1.015
    段坐标列表 = ['']
    段坐标列表.append([(中心宽度+画布宽度*0.4,中心高度-画布宽度*0.7),(中心宽度+画布宽度*0.4,中心高度-画布宽度*0.1)])
    段坐标列表.append([(中心宽度+画布宽度*0.4,中心高度+画布宽度*0.1),(中心宽度+画布宽度*0.4,中心高度+画布宽度*0.7)])
    段坐标列表.append([(中心宽度+画布宽度*0.3,中心高度+画布宽度*0.8),(中心宽度-画布宽度*0.3,中心高度+画布宽度*0.8)])
    段坐标列表.append([(中心宽度-画布宽度*0.4,中心高度+画布宽度*0.7),(中心宽度-画布宽度*0.4,中心高度+画布宽度*0.1)])
    段坐标列表.append([(中心宽度-画布宽度*0.4,中心高度-画布宽度*0.7),(中心宽度-画布宽度*0.4,中心高度-画布宽度*0.1)])
    段坐标列表.append([(中心宽度-画布宽度*0.3,中心高度-画布宽度*0.8),(中心宽度+画布宽度*0.3,中心高度-画布宽度*0.8)])
    段坐标列表.append([(中心宽度-画布宽度*0.3,中心高度),(中心宽度+画布宽度*0.3,中心高度)])
    数字显示段列表 = [[1,2,3,4,5,6],[1,2],[6,1,7,4,3],[6,1,7,2,3],[5,7,1,2],[6,5,7,2,3],
                     [6,5,7,2,3,4],[6,1,2],[1,2,3,4,5,6,7],[1,2,3,5,6,7]]

    def 数据更新():
        个位数据 = int(当前数据.get())%10
        数码列表 = 数字显示段列表[个位数据]
        画布.delete(tk.ALL)
        for i in 数码列表:
            x1 = 段坐标列表[i][0]
            x2 = 段坐标列表[i][1]
            画布.create_line(x1[0],x1[1],x2[0],x2[1],width = 段宽,fill = 'red',capstyle = tk.ROUND )  
        子窗口.after(更新速度,数据更新)
    数据更新()

三、封装库的使用

在test.pyw中添加以下代码准备测试:

import PythonGui as GUI


主窗体 = GUI.A_建立根页面(['测试软件',350,300,'Beige'],'')
测试数据 = GUI.A_定义变量('int',0)

def 外部函数():
    global 测试数据
    测试数据.set( 测试数据.get()+1 )
    
GUI.T_定时器控件(1000,外部函数,True)  
GUI.SS_3创建七段数码显示控件1([主窗体,0,0],['yellowgreen',100],[测试数据,100])

主窗体.mainloop()

SS_3创建七段数码显示控件1函数中有三个形参:0.放置属性 1.数码属性 2.数据属性
(1)放置属性为一个列表,分别代表 0.放置的窗口 1.放置于窗口的行 2.放置于窗口的列
(2)数码属性为一个列表,分别代表 0.数码的背景颜色 1.数码宽度
(3)数据属性为一个列表,分别代表 0.当前数据 1.更新速度

注意:1.七段数码显示控件1只能显示一位数据 2.当前数据仅支持本封装库创建的变量
在这里插入图片描述

在这里插入图片描述


四、总结

若有建议之处,麻烦在评论区指出,共同进步,谢谢。ps:平常加班较多,我会抽空余时间更新后面章节。已更新其他七段数码显示控件,如下所示:

1.显示多位整数
python tkinter GUI简单化编程之七段数码显示控件2

在这里插入图片描述
在这里插入图片描述
2.多位浮点数
python tkinter GUI简单化编程之七段数码显示控件3

在这里插入图片描述
在这里插入图片描述

3.显示时间
python tkinter GUI简单化编程之七段数码显示控件4

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆熊的世界

原创不复制精细无废料,谢谢赞赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值