Python GUI 图像打开和显示(二)

在初步实现GUI显示图片后,考虑Python能否像MATLAB和QT那样通过按钮打开文件夹,选择任意图片并打开,主要代码如下

    OpenFile = tk.Tk()   #创建新窗口
    OpenFile.withdraw()
    file_path = filedialog.askopenfilename() # 获取路径

再结合之前的图片显示代码实现任意图片的打开和显示,整体代码如下



from PIL import Image, ImageTk # 导入图像处理函数库
import tkinter as tk
from tkinter import filedialog   #导入文件对话框函数库

# 创建窗口 设定大小并命名
window = tk.Tk()
window.title('图像显示界面')
window.geometry('600x500')
global img_png           # 定义全局变量 图像的
var = tk.StringVar()    # 这时文字变量储存器

# 创建打开图像和显示图像函数
def Open_Img():
    global img_png
    OpenFile = tk.Tk() #创建新窗口
    OpenFile.withdraw()
    file_path = filedialog.askopenfilename()
    Img = Image.open(file_path)
    img_png = ImageTk.PhotoImage(Img)
    var.set('已打开')
def Show_Img():
    global img_png
    var.set('已显示')   # 设置标签的文字为 'you hit me'
    label_Img = tk.Label(window, image=img_png)
    label_Img.pack()

# 创建文本窗口,显示当前操作状态
Label_Show = tk.Label(window,
    textvariable=var,   # 使用 textvariable 替换 text, 因为这个可以变化
    bg='blue', font=('Arial', 12), width=15, height=2)
Label_Show.pack()
# 创建打开图像按钮
btn_Open = tk.Button(window,
    text='打开图像',      # 显示在按钮上的文字
    width=15, height=2,
    command=Open_Img)     # 点击按钮式执行的命令
btn_Open.pack()    # 按钮位置
# 创建显示图像按钮
btn_Show = tk.Button(window,
    text='显示图像',      # 显示在按钮上的文字
    width=15, height=2,
    command=Show_Img)     # 点击按钮式执行的命令
btn_Show.pack()    # 按钮位置

# 运行整体窗口
window.mainloop()

实现程序的打包.exe

  1. 首先需要在Python安装目录下安装pyinstaller。
  2. 之后将编写好的程序复制到C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts下
    在这里插入图片描述
  3. 打开cmd,找到该路径C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts在这里插入图片描述
    输入 pyinstaller Image_Openfiles.py,程序运行完,就打包成功了,打包后的文件中有很多东西,找到应用程序,打开即可
    在这里插入图片描述
    运行结果如下在这里插入图片描述
    在这里插入图片描述

目前存在的问题:
a. 界面中的面板位置不能任意放置,图片位置不固定
b. 重复显示图片,图像会重复显示到当前图的下方,
c. 界面不太美观,考虑进一步优化,或者找其他创建界面的方式

  • 5
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangxiaobei2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值