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实现逆波兰计算表达式实例详解
May 06 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
python爬取淘宝商品销量信息
Nov 16 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
Eclipse配置python默认头过程图解
Apr 26 Python
使用Python实现批量ping操作方法
May 06 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
Python Request类源码实现方法及原理解析
Aug 17 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
学习ExtJS Column布局
2009/10/08 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
用Python实现一个简单的线程池
2015/04/07 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
建筑设计所实习生自我鉴定
2013/09/25 职场文书
中学生自我鉴定
2014/02/04 职场文书
幼儿园招生广告
2014/03/19 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
幸福家庭标语
2014/06/27 职场文书
2014年民警工作总结
2014/11/25 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA