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