原标题:应用Tkinter模块制作一个图片播放器

今天,在看视频的同时,想了一下,既然视频、音乐都有自己的播放器,那么图片呢?是否有自己的播放器呢?既然没有,为什么不做一个呢?

文章目录

  • 原标题:应用Tkinter模块制作一个图片播放器
    • 1.了解Tkinter模块
    • 2.怎样实现播放下一张图片效果
    • 3.最终代码
      • 3.1 代码:
    • 4.总结

1.了解Tkinter模块

Tkinter是Python比较常见的用来做图形界面的模块,自身不需要安装,并且容易使用。
今天我们要知道的它的几个组件:
Label组件:是用于在界面上输出描述的标签。

Button组件:是用于实现一个按钮,它的绝大多数选项跟Label组件是一样的。不过,Button组件有一个Label组件实现不了的功能,那就是可以接收用户的信息。Button组件有一个command选项,用于指定一个函数或方法,当用户单击按钮的时候,Tkinter就会自动地去调用这个函数或方法了。

Entry组件:是平时所说的输入框。输入框是程序打交道的一个途径,例如程序要求你输入账号密码,那么它就需要提供两个输入框给你,用于接收密码的输入框还会用星号将实际输入的内容隐藏起来。

Text组件:用于显示和处理多行文本,在Tkinter的所有组件中,Text组件显得异常强大和灵活,它适用于处理多种任务。

2.怎样实现播放下一张图片效果

代码如下:

import tkinter as tkroot=tk.Tk()
root.geometry("300x300")
photo=tk.PhotoImage(file='D:/QQ浏览器下载/2.gif')
text1=tk.Text(root)
text1.pack()
text1.image_create(tk.END,image=photo)
text1.update()
def delete():text1.delete('0.0',tk.END)text1.update()
button=tk.Button(root,text='按钮',command=delete)
button.pack()root.mainloop()

tkinter上显示图片的格式必须是.gif 格式的,否则会报错,上面代码基本功能是通过按一个按钮实现图片被删除,这个时候我们只要在插入一张新的图片就可以显示出播放下一张图片的效果了。
注意:对于读者而言,想要运行一下上面程序,记得改动一下上面的图片的绝对路径。

3.最终代码

为了使图形界面显示更加美观,我这里使用了tkinter下面的configure()方法,把界面整体颜色设置为黑色。

import tkinter as tkroot=tk.Tk()
root.configure(background='black')   # 设置图形界面的背景为黑色root.mainloop()


这样整体颜色就变成了黑色了。
既然图形界面背景为黑色,那么显示的字体颜色就必须为白色。
我这里设置了图形界面的大小,这里的参数是根据我自己电脑屏幕大小来设置,不同人的电脑屏幕大小也许是不同,可以用QQ截图工具测试一下你的电脑屏幕大小喔!

root.geometry("1920x1040")

既然是图片播放器,那么怎么少得了死循环呢?不然,图片一下子就播放完毕了,只有通过死循环,这样就可以看上去有很多图片一样。

    while True:   # 一个死循环for i in range(len(list_1)):if fileName in list_1[i]:    # 从第几张图片开始播放for j in range(i,len(list_1)):photo = tk.PhotoImage(file=list_1[j])text1.image_create(tk.END, image=photo)text1.update()time.sleep(5)text1.delete('1.0','1.end')

不过,图片尺寸还是必须有严格规定的,否则一些图片只能显示出部分区域。
要下载图片可以看我这篇博文喔:python多线程爬虫下载图片
既然tkinter要求显示的图片必须是 .gif格式,那么我们就把它转换成 .gif格式就行了。

from PIL import Image
import ospath=input('输入图片所在的文件夹:')
list_1=[path+'\\'+i for i in os.listdir(path=path)]
for file in list_1:args=Image.open(file)file1=file.replace(file[file.find('.'):],'.gif')args.save(file1)os.remove(path=file)   # 删除不是 .gif格式的图片

既然改的是图片格式,那么这个文件夹下面就不能有 不是图片格式的文件,否则程序会出错。

3.1 代码:
import tkinter as tk
from tkinter import filedialog
import time
import osroot=tk.Tk()
root.geometry("1920x1040")         # 图形界面的大小
root.title('-->图片播放器')         # 标题
root.configure(background='black')   # 设置图形界面的背景为黑色label1=tk.Label(root,text='图片文件',bg='black',font=('楷体',13,'bold'),fg='white')
label1.grid(row=0,column=0)v1=tk.StringVar()
entry1=tk.Entry(root,textvariable=v1,width=35)
entry1.grid(row=0,column=1,ipadx=40)def callback():fileName=filedialog.askopenfilename()entry1.insert(tk.INSERT, fileName)# print(fileName)    # 开始播放的第一张图片filepath=fileName[:fileName.rfind('/')]# print(filepath)     # 这张图片的文件夹list_1=[filepath+'/{}'.format(i) for i in os.listdir(filepath)]while True:   # 一个死循环for i in range(len(list_1)):if fileName in list_1[i]:    # 从第几张图片开始播放for j in range(i,len(list_1)):photo = tk.PhotoImage(file=list_1[j])text1.image_create(tk.END, image=photo)text1.update()time.sleep(5)text1.delete('1.0','1.end')button1=tk.Button(root,text='浏览',bg='black',font=('楷体',13,'bold'),fg='white',command=callback)
button1.grid(row=0,column=2)text1=tk.Text(root,width=210,height=55)
text1.grid(row=1,columnspan=3,padx=20)root.mainloop()

运行结果:

20200415_091215.mp4

4.总结

代码是自己昨天和今天编写出来的,希望看了的读者能给我点一个小小的赞,我一定会更加努力,创造出更好的文章的。

视频、音乐播放器大家都听说过,那么图片播放器呢相关推荐

  1. windows照片查看器没了_HoneyView - 快速的图片查看器

    HoneyView 是一款 快速的图片查看器,完全免费无广告.和 Bandizip 是同一公司的软件,因此不排除以后会再某个 版本更新 中开始增加 付费功能.不过在此之前,这款软件仍是非常 值得安装 ...

  2. jQuery实现图片播放器插件

    jquery 图片播放器插件 文章原创,欢迎转载,转载请注明出处:http://blog.csdn.net/xxd851116 作者:笑的自然  我的博客:http://blog.csdn.net/x ...

  3. 图片读取器和皮肤库设计

    图片读取器和皮肤库设计 无论是图片读取器还是皮肤库设计,其实只是点到为止,没有深入做出很好的视觉效果,请见谅. 一.实验目的 1.结合实例,熟练分析并绘制UML类图: 2.熟练使用java实现两种常见 ...

  4. Android 图片压缩器

    概述 Android 图片压缩器:一款高效的图片压缩器库,支持批量压缩,异步压缩.多线程多任务压缩,压缩比设置等特性. 详细 代码下载:http://www.demodashi.com/demo/12 ...

  5. Win10 LTSB/LTSC 录音机、图片查看器、便签

    Win10 LTSB/LTSC 录音机.图片查看器.便签 文章目录 Win10 LTSB/LTSC 录音机.图片查看器.便签 示例 录音机 图片查看器 便签 示例 文件下载地址 链接: https:/ ...

  6. 5步告诉你QQ音乐的完美音质是怎么来的,播放器的秘密都在这里

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由QQ音乐技术团队发表于云+社区专栏 一.问题背景与分析 不久前,团队发现其Android平台App在播放MV视频<凤凰花开的路口 ...

  7. canvas 视频音乐播放器

    canvas 视频音乐播放器 canvas 视频音乐播放器 var play_nor_img_path = 'images/play_btn_n.png'; //播放按钮 正常时 60x60 px v ...

  8. C++ QT视频音乐播放器

     程序示例精选 C++/QT视频音乐播放器 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对<<C++/QT视频音乐播放器>>编写代 ...

  9. 《视频直播技术详解》系列之七:现代播放器原理

    七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣. 结合七牛实时流网络 LiveNet 和直播云解 ...

最新文章

  1. OpenGL实践系列之开篇: 坐标系
  2. Python 技术篇-使用pygame库播放音乐没有声音问题解决办法
  3. 第五讲 一阶自治ODE
  4. 字符串操作:截取表单网址里的信息变成对象
  5. php中的getdate+函数,PHP中的getdate()函数
  6. 如何设置CentOS 7获取动态及静态IP地址
  7. SQL Server IDENDITY 的用法
  8. 【转】wcf configuration
  9. python如何删除对象属性_如何销毁python中属性中的对象?
  10. linux 下载hbase源码,linux上安装hbase(示例代码)
  11. 解决Android Studio连接不到ios模拟器问题
  12. 韩立刚Linux基础入门,Linux入门基础笔记1(韩立刚课程)(示例代码)
  13. 【Web渗透】信息收集篇——Google搜索引擎(二)
  14. 出现HTTPS证书错误原因
  15. Eclipse ADT插件和Android SDK使用离线包升级笔记
  16. 【ANSYS APDL】如何将变量、矩阵等数据导出到TXT文件?
  17. 形如e^(ax^2+bx+c)的积分公式的证明
  18. 权限绕过漏洞(越权漏洞)
  19. 如何举报和处理垃圾或非法邮件
  20. greylist 灰名单 灰名单技术

热门文章

  1. Python周刊482期
  2. 浅谈国产ERP的“横纵竖”三向发展态势
  3. 期货交易者都面对怎样的交易心理?如何克服?
  4. RSA双向加解密(公钥加密-私钥解密;私钥加密-公钥解密)
  5. 记,罗盘时钟使用js实现
  6. 网络七层协议和网络状态报错误对应表
  7. 公众号带货软文应该怎么写?
  8. Linux CFS调度器之负荷权重load_weight--Linux进程的管理与调度(二十五)
  9. STM32 超声波模块测距
  10. 边缘计算那些事儿--边缘卸载技术