Python button选取本地图片并显示的实例

yipeiwu_com5年前Python基础

从本地文件夹中选取一张图片并在canvas上显示

from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk

if __name__ == "__main__":
  root = Tk()

  #setting up a tkinter canvas with scrollbars
  frame = Frame(root, bd=2, relief=SUNKEN)
  frame.grid_rowconfigure(0, weight=1)
  frame.grid_columnconfigure(0, weight=1)
  xscroll = Scrollbar(frame, orient=HORIZONTAL)
  xscroll.grid(row=1, column=0, sticky=E+W)
  yscroll = Scrollbar(frame)
  yscroll.grid(row=0, column=1, sticky=N+S)
  canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)
  canvas.grid(row=0, column=0, sticky=N+S+E+W)
  xscroll.config(command=canvas.xview)
  yscroll.config(command=canvas.yview)
  frame.pack(fill=BOTH,expand=1)


  #function to be called when mouse is clicked
  def printcoords():
    File = filedialog.askopenfilename(parent=root, initialdir="C:/",title='Choose an image.')
    filename = ImageTk.PhotoImage(Image.open(File))
    canvas.image = filename # <--- keep reference of your image
    canvas.create_image(0,0,anchor='nw',image=filename)

  Button(root,text='choose',command=printcoords).pack()
  root.mainloop()

以上这篇Python button选取本地图片并显示的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python最小生成树kruskal与prim算法详解

python最小生成树kruskal与prim算法详解

kruskal算法基本思路:先对边按权重从小到大排序,先选取权重最小的一条边,如果该边的两个节点均为不同的分量,则加入到最小生成树,否则计算下一条边,直到遍历完所有的边。 prim算法基...

python中property属性的介绍及其应用详解

Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回。 使用property修饰的实例方法被调用时,可以把它当做实例属性一样 pr...

Python实现变量数值交换及判断数组是否含有某个元素的方法

Python实现变量数值交换及判断数组是否含有某个元素的方法

本文实例讲述了Python实现变量数值交换及判断数组是否含有某个元素的方法。分享给大家供大家参考,具体如下: 本来,这两个问题都属于的编程入门简单得不能再简单的问题,根本就不值得写篇记录...

django使用图片延时加载引起后台404错误

django使用图片延时加载引起后台404错误

环境 django 1.10.6 缘起 今天接到一个任务——解决终端满屏日志中的无用错误。 django 会尽可能给你准确报出错误位置,但是一些复杂,深层次的错误它自带的错误日志有些不足...

Python中的类学习笔记

Python中的类学习笔记

Python使用中面向对象的语言,支持继承、多态; 定义一个Person类: 复制代码 代码如下: >>> class Person: ... def sayHello...