Python Tkinter 浏览文件 - 问题

标签 python user-interface tkinter

我在显示所选图像的位置时遇到一些问题。它显示<_io.TextIOWrapper name =有什么原因吗?以及mode='r'encoding ='cp1252> ?我只是希望它显示图像的位置以及图像的名称,而不是那些额外的东西。我正在做的事情是否导致了这种情况的发生?请指教。

def button(self):
    self.button = ttk.Button(self.labelFrame, text = "Upload Image", command = self.fileDialog)
    self.button.grid(column = 1, row = 1)     


def fileDialog(self):
    self.filename = filedialog.askopenfile(initialdir = "/", title = "Select a File", filetype = (("jpeg", "*.jpg"), ("All files", "*.")))
    self.label = ttk.Label(self.labelFrame, text = "")
    self.label.grid(column = 1, row = 2)
    self.label.configure(text = self.filename)

Image display

最佳答案

filedialog.askopenfile 给出文件对象,而不是文件名。

您必须显示 self.filename.name 而不是 self.filename

<小时/>

完整的工作示例

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()

file_object = filedialog.askopenfile(title="Select file")
print('file_object:', file_object)
print('file_object.name:', file_object.name)
#data = file_object.read()

label = tk.Label(root, text=file_object.name)
label.pack()

root.mainloop()
<小时/>

或者使用askopenfilename而不是askopenfile来获取文件名。

<小时/>

完整的工作示例

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()

filename = filedialog.askopenfilename(title="Select file")
print('filename:', filename)
#data = open(filename).read()

label = tk.Label(root, text=filename)
label.pack()

root.mainloop()

关于Python Tkinter 浏览文件 - 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55682916/

相关文章:

python - 使用 pyenv 在系统范围内安装特定版本的 Python

c# - 我的程序停留在 Process.WaitForExit();

python - 如何使用 "onehot_enc"实现朴素贝叶斯算法?

python - 使用python在CSV中找出给定DOB的月份和年份年龄

python - 将 print() 的输出发送到 tkinter Text 小部件

python - 让窗口出现在底部

c# - XAML 工具提示 + IsHitTestVisible ="False"

Android-NDK:从 native 代码创建 GUI 元素

python - 第一个 Python Tkinter 窗口可以工作,但其余窗口是空白的

python - TKINTER 小部件的配置选项列表