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下
    Python GUI 图像打开和显示(二)_第1张图片
  3. 打开cmd,找到该路径C:\Users\Administrator\AppData\Local\Programs\Python\Python37\ScriptsPython GUI 图像打开和显示(二)_第2张图片
    输入 pyinstaller Image_Openfiles.py,程序运行完,就打包成功了,打包后的文件中有很多东西,找到应用程序,打开即可
    Python GUI 图像打开和显示(二)_第3张图片
    运行结果如下Python GUI 图像打开和显示(二)_第4张图片
    Python GUI 图像打开和显示(二)_第5张图片

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

你可能感兴趣的:(Python)