【Python-利用动态二维码传输文件(五)】动态二维码文件发送端开发,使用Tkinter filedialog实现任意格式文件选中,并显示发送状态

        之前四篇文章论证了利用二维码传输文件的可行性,本章使用tkinter开发【动态二维码文件发送端】,发送端具备文件选择、开始发送文件、停止发送文件以及显示发送状态的功能,程序界面下:

这里下载源码运行↓↓↓       

使用tkinter开发动态二维码文件发送端-图像识别文档类资源-CSDN下载    


目录

一、程序的界面设计

二、tkinter选择文件功能开发

三、文件拆分成二维码功能开发

四、发送和停止线程开发

五、发送状态更新功能开发

六、运行效果和完整代码


        经过简单分析,要开发该程序,需要完成以下五个步骤,1)程序的界面设计;2)选择文件功能开发;3)文件拆分成二维码功能开发;4)发送和停止线程开发;5)发送状态更新功能开发。接一下一个一个步骤进行研究。

一、程序的界面设计

        程序界面内容不多,只需用到图片显示组件、文本组件、按钮组件,然后使用tkinter的网格布局.grid(row=,column=,......)把组件放置在对应的位置即可。由于文件路径、图片、状态会随着用户的操作发生变化,这里把文件路径变量_label_filepath、图片对象变量_label_dt、进度和状态变量_label_progress_text_label_state_text设置为程序的全局变量,方便后续开启线程调用全局global变量,更新上述组件。

        主要代码如下:

from tkinter import Tk, Label, Button, StringVar
from PIL import Image, ImageTk

# 显示图片组件
_label_dt = None
# 显示文件路径组件,_label_filepath_text为文件路径
_label_filepath_text = None
# 显示发送状态组件,_label_progress_text为进度,_label_state_text为状态
_label_progress_text = None
_label_state_text = None

def open_window():
    # 创建窗口
    root = Tk()
    # 设置窗口的标题
    root.title("动态二维码文件发送端")
    # 创建图片组件,None.png为未启动发送时的默认图片
    _pil_image = Image.open('None.png')
    # 缩放图片
    _w, _h = _pil_image.size
    _pil_image_resized = resize(_w, _h, 300, 300, _pil_image)
    _tk_image = ImageTk.PhotoImage(_pil_image_resized)
    # 创建图片组件,放置在root中
    global _label_dt
    _label_dt = Label(root, image=_tk_image, width=300, height=300)
    _label_dt.grid(row=0, columnspan=4, column=0)
    _button = Button(root, text="选择待发送文件......", command=open_file)
    _button.grid(row=1, column=0,columnspan=2)
    # 创建label可变文本,用于动态更新选中的文件路径
    global _label_filepath_text
    _label_filepath_text = StringVar()
    _label_filepath = Label(root, textvariable=_label_filepath_text)
    _label_filepath.grid(row=1,column=2, columnspan=2)
    # 创新开始、停止按钮
    _button_start = Button(root, text="开始发送", command=start_send_file)
    _button_stop = Button
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神奇的代码在哪里

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值