python tkiner实现 一个小小的图片翻页功能的示例代码


Posted in Python onJune 24, 2020

具体代码如下所示:

import tkinter as tk
import tkinter.messagebox
import copy
import os,sys
def get_picture(dirs):
'''获得所有图片'''
  picture_list = []
  for dir,dir_abs,files in os.walk(dirs):
    for file in files:
      if file.endswith('.gif'):
        picture_list.append(os.path.join(dir,file))
  return picture_list
class Window:
  button_list = []
  object_list = []
  pictures = get_picture(picture_path)
  file = pictures[0]
  is_show = True
  index = 0
  image_file = ''
  def __init__(self):
    '''创建窗口和frame'''
    self.window = tk.Tk()
    self.window.title('my window')
    self.window.geometry('600x600')
    self.frame = tk.Frame(self.window)
    self.frame.pack()
    self.frame_l = tk.Frame(self.frame)
    self.frame_r = tk.Frame(self.frame)
    self.frame_l.pack(side='left')
    self.frame_r.pack(side='right')
    self.frame_ll = tk.Frame(self.frame_r)
    self.frame_rr = tk.Frame(self.frame_r)
    self.frame_ll.pack(side='left')
    self.frame_rr.pack(side='right')
    
  def next_picture(self):
    '''下一张图片'''
    self.index = self.pictures.index(self.file)
    self.index += 1
    if self.index < len(self.pictures):
      self.checkout_button()
      self.file = self.pictures[self.index]
      self.create_canvas(self.file)
    else:
      self.index = len(self.pictures) - 1
      tkinter.messagebox.showinfo('提示', '已近是最后一张了')

  def checkout_button(self):
    '''判断列表中是否只有button对象'''
    object_list_copy = copy.copy(self.object_list)
    for ob in self.object_list:
      if ob in self.button_list:
        pass
      else:
        b = object_list_copy.pop(self.object_list.index(ob))
        b.destroy()
    self.object_list = object_list_copy

  def pre_picture(self):
    '''上一页'''
    self.index = self.pictures.index(self.file)
    self.index -= 1
    if self.index >= 0:
      self.checkout_button()
      self.file = self.pictures[self.index]
      self.create_canvas(self.file)
    else:
      self.index = 0
      tkinter.messagebox.showinfo('提示', '已经是第一张了')

  def show_picture(self):
    '''展示图片和翻页按钮'''
    self.file = self.pictures[0]
    if self.is_show:
      self.is_show = False
      self.create_canvas(self.file)
      button1 = tk.Button(self.frame_ll, text='上一张', width=10, height=1, command=self.pre_picture)
      button1.pack()
      button2 = tk.Button(self.frame_rr, text='下一张', width=10, height=1, command=self.next_picture)
      button2.pack()
      self.button_list.append(button1)
      self.button_list.append(button2)
      self.object_list.extend(self.button_list)
    else:
      self.is_show = True
      while self.object_list:
        o = self.object_list.pop()
        o.destroy()
  def new_button(self):
    '''创建展示按钮'''
    tk.Button(self.frame_l, text='图片展示', width=10, height=1, command=self.show_picture).pack()

  def create_canvas(self,file):
    '''用画布展示图片'''
    self.image_file = tk.PhotoImage(file=file)
    canvas = tk.Canvas(self.frame_r, height=500, width=600)
    canvas.create_image(1, 1, anchor='nw', image=self.image_file)
    canvas.pack()
    self.object_list.append(canvas)

  def run(self):
    '''主程序调用'''
    self.window.mainloop()

if __name__ == '__main__':
  w = Window()
  w.new_button()
  w.run()

样式如下:有点丑,不过功能没毛病,就先这么着吧~~~

python tkiner实现 一个小小的图片翻页功能的示例代码

点击图片展示之后

python tkiner实现 一个小小的图片翻页功能的示例代码

上一页下一页可以用,再次点击图片展示

python tkiner实现 一个小小的图片翻页功能的示例代码

总结

到此这篇关于python tkiner实现 一个小小的图片翻页功能的文章就介绍到这了,更多相关python tkiner实现图片翻页内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中的列表推导浅析
Apr 26 Python
python操作xml文件详细介绍
Jun 09 Python
Python的Django框架使用入门指引
Apr 15 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python中的TCP socket写法示例
May 11 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
python使用布隆过滤器的实现示例
Aug 20 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 #Python
基于pytorch中的Sequential用法说明
Jun 24 #Python
django haystack实现全文检索的示例代码
Jun 24 #Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 #Python
python使用自定义钉钉机器人的示例代码
Jun 24 #Python
pytorch中的weight-initilzation用法
Jun 24 #Python
pytorch查看模型weight与grad方式
Jun 24 #Python
You might like
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
教大家制作简单的php日历
2015/11/17 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python局部赋值的规则
2013/03/07 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
德国机车企业:FC-Moto
2017/10/27 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
物理教学随笔感言
2014/02/22 职场文书
加油口号大全
2014/06/13 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
办护照工作证明
2014/10/01 职场文书
学校运动会加油词
2015/07/18 职场文书
导游词之潮音寺
2019/09/26 职场文书
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python
服务器SVN搭建图文安装过程
2022/06/21 Servers