代码要点:1)使用tkinter的Label显示图片;2)tkinter的PhotoImage支持的图片格式较少,使用pillow扩展库的Image和ImageTk弥补了这个缺点。

import os

import tkinter

import tkinter.messagebox

from PIL import Image, ImageTk

# 创建tkinter应用程序窗口

root = tkinter.Tk()

# 设置窗口大小和位置

root.geometry('430x650+40+30')

# 不允许改变窗口大小

root.resizable(False, False)

# 设置窗口标题

root.title('使用Label显示图片')

# 获取当前文件夹中所有图片文件列表

suffix = ('.jpg', '.bmp', '.png')

pics = [p for p in os.listdir('.') if p.endswith(suffix)]

current = -1

def changePic(flag):

'''flag=-1表示上一个,flag=1表示下一个'''

global current

new = current + flag

if new<0:

tkinter.messagebox.showerror('', '这已经是第一张图片了')

elif new>=len(pics):

tkinter.messagebox.showerror('', '这已经是最后一张图片了')

else:

# 获取要切换的图片文件名

pic = pics[new]

# 创建Image对象并进行缩放

im = Image.open(pic)

w, h = im.size

# 这里假设用来显示图片的Label组件尺寸为400*600

if w>400:

h = int(h*400/w)

w = 400

if h>600:

w = int(w*600/h)

h = 600

im = im.resize((w,h))

# 创建PhotoImage对象,并设置Label组件图片

im1 = ImageTk.PhotoImage(im)

lbPic['image'] = im1

lbPic.image = im1

current = new

# “上一张”按钮

def btnPreClick():

changePic(-1)

btnPre = tkinter.Button(root, text='上一张', command=btnPreClick)

btnPre.place(x=100, y=20, width=80, height=30)

# “下一张”按钮

def btnNextClick():

changePic(1)

btnNext = tkinter.Button(root, text='下一张', command=btnNextClick)

btnNext.place(x=230, y=20, width=80, height=30)

# 用来显示图片的Label组件

lbPic = tkinter.Label(root, text='test', width=400, height=600)

changePic(1)

lbPic.place(x=10, y=50, width=400, height=600)

# 启动消息主循环

root.mainloop()

运行截图:

Python使用tkinter编写图片浏览程序相关推荐

  1. 使用Python+tkinter编写电脑桌面放大镜程序

    代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进行二次截图,放大后再显示到鼠标左上角. 主要技术:全屏截图,指定区域截图,绑定鼠标事件,绘制图像. 建议大家照着代码敲一遍,然后运行试试.代码有一点 ...

  2. python的tkinter插入图片_详解python tkinter 图片插入问题

    通过tkinter.PhotoImage插入GIF, PGM/PPM格式的图片. import tkinter class Gui: def __init__(self): self.gui=tkin ...

  3. python的tkinter插入图片_Python3 Tkinter基础 Text Photoimage 文本框中插入一张图片

    镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发. ----------------------------- ...

  4. python的tkinter编写计算器_Python+Tkinter 实现计算器功能

    1 #=================================================================================== 2 importtkint ...

  5. python的tkinter编写计算器_tkinter写的计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 # -*- coding: cp936 -*- try: from tkinter import * import math, datetime from ...

  6. python socket recv超时_python使用多线程编写tcp客户端程序,你还没掌握吗?

    这篇文章主要为大家详细介绍了python使用多线程编写tcp客户端程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在网上浏览的时候发现很多关于此题目的程序都只能接收数据,所以随便找了个程序研究 ...

  7. 下面哪个不是python常用的开发工具_Python程序员常用的IDE和其它开发工具

    概述 "工欲善其事,必先利其器",如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE的全称是Integration Development Environment ...

  8. python练习册 每天一个小程序 第0013题

    # -*-coding:utf-8-*- '''题目描述:用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-)地址:http://tieba.baidu.com/p/216623 ...

  9. Python爬虫 | Python爬虫获取女友图片

    Python爬虫 | Python爬虫获取女友图片 前言 程序说明 二次元女友获取程序 观察网页结构 页面解析 创建图片保存路径 图片下载 格式转换 爬取结果展示 完整程序 前言 (又到了常见的无中生 ...

最新文章

  1. 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
  2. socket编程总结
  3. 类加载器-启动类加载器
  4. java io操作_Java 的IO操作(文件的读,写操作)
  5. STM32 应用程序加密的一种设计方案
  6. 【Linux】kali 2019.4 安装中文输入法
  7. POJ3420 Quad Tiling【矩阵快速幂】
  8. 安卓滚动字幕以及TextSwitcher、ImageSwitcher使用
  9. jquery radio设置选中_前端jQuery实战之 attr() 和 prop() 的区别
  10. 随机出题在线考试系统php_在线考试系统怎么实现自制题库随机出题
  11. 【网络】Padavan 路由器固件设置打印机服务器
  12. 记一次失败的机械键盘拆机换轴经历(含失败的经验总结)
  13. 【天光学术】新闻学论文:校园网络流行语传播社会热点问题的途径(节选)
  14. CC建模重建项目总是失败的原因
  15. 人工智能α-β树剪支图文
  16. win 下 docker 环境配置
  17. js处理json数组
  18. java string 加空格_java字符串加入空格
  19. 基于java的中文分词工具ANSJ
  20. 计算机二级试题aoa,计算机二级AOA理论题库

热门文章

  1. java异常断点数组_使用IDEA异常断点来定位java.lang.ArrayStoreException的问题
  2. html5圆形导航菜单,圆滑细腻,那些使用圆形导航菜单的漂亮网页设计
  3. 后勤管理系统_还在用人工进行宿舍后勤管理?超级适用的宿舍管理系统推荐
  4. c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵快速转置 数据结构实验报告
  5. sparksql 操作hive_三十六、图解SparkSQL运行原理
  6. mysql创建gbk库_MYSQL创建utf-8和GBK格式数据库
  7. 护士计算机怎么报名,护士自考本科怎样报名
  8. spark如何防止内存溢出_什么叫内存溢出?内存泄漏的定义又是什么?使用中如何避免?...
  9. android dialogfragment 简单,使用DialogFragment
  10. 怎么保证读取最新数据_摄影师的数据存储有多难,怎么存储大量数据并保证安全高速防水防摔防尘?SanDisk...