首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python使用tkinter编写图片浏览程序

Python使用tkinter编写图片浏览程序

作者头像
Python小屋屋主
发布2018-04-17 10:41:25
3K0
发布2018-04-17 10:41:25
举报
文章被收录于专栏:Python小屋Python小屋

代码要点: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()

运行截图:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档