在python tkinter中显示文件名

我目前正在从事一个翻译器项目,其中的输入将是一个文本文件,这是用英语创建的,我希望同样的翻译成德语。所以我使用askOpenFilename来查找要选择的文件,在选择文件后,文件的名称应该显示在标签按钮中。我如何在标签按钮中显示文件名?

选择 | 换行 | 行号
  1. import Tkinter as tk
  2. from tkFileDialog import askopenfilename
  3. import os
  4. class En2De(tk.Frame):
  5.     def __init__(self,master=None):
  6.         tk.Frame.__init__(self,master)
  7.         self.grid()
  8.         self.createWidgets()
  9.     def createWidgets(self):
  10.         self.quitButton = tk.Button(self, text='Quit',command=self.quit)
  11.         self.UploadButton = tk.Button(self, text='UPLOAD FILES HERE',command= self.uploadButton)
  12.         self.Label1=tk.Label(self)
  13.         self.Label2 = tk.Label(self,text='Please Select a language:')
  14.         optionlist = ('--Select--','Afrikaans','Albanian','English','French','German','Hindi','Tamil','Telugu')
  15.         self.var=tk.StringVar()
  16.         self.var.set(optionlist[0])
  17.         self.om=tk.OptionMenu(self,self.var,*optionlist)#om=optionmenu
  18.         #self.ConvertButton=tk.button(self, text'Convert Files',command=self.convertButton)
  19.         #Registering it to the window
  20.         self.quitButton.grid(sticky=tk.NE)
  21.         self.UploadButton.grid()
  22.         self.Label1.grid()
  23.         self.Label2.grid()
  24.         self.om.grid()
  25.     def uploadButton(self):
  26.         filename = askopenfilename(filetypes=(("Template Files","*.tplate"),("Portable Document File","*.pdf"),("Text File","*.txt"),("Word Document","*.docx"),("Word 97-2003 Document","*.doc"),("All Files","*.*")))
  27.  
  28. Translater = En2De()
  29. Translater.master.title('A Translater for Translating Documents From English to German')
  30. Translater.mainloop()
  31.  
# 回答1


还有更多的单边方法。这里有一个:

选择 | 换行 | 行号
  1. self.Label1.config(text="the_file_name")
# 回答2


@bvdet
谢谢你的帮助。它正在工作,但我只需要文件名,而不是完整的路径。最初,它应该以红色显示"未上传文件"。如果文件被更新,它必须以某种颜色(绿色)显示文件名。我该怎么做呢?有什么想法吗?
# 回答3


@bdvet
请参考26号线。

选择 | 换行 | 行号
  1. self.Label1.config(text=filename, fg="blue")

我试过了。这是正确的做法吗?

# 回答4


选择权
FG

前景
指定文本的颜色。是的,那才是正确的方式。
要仅显示文件名,请执行以下操作:

选择 | 换行 | 行号
  1. >>> import os
  2. >>> path = r"D:\SDS2_7.3B\plugins\SagRod\SagRod.py"
  3. >>> os.path.basename(path)
  4. 'SagRod.py'
  5. >>> 

要以红色显示初始消息,请执行以下操作:

选择 | 换行 | 行号
  1. w = Tkinter.Label(parent, text="No files uploaded", fg="red")
# 回答5


@bdvet
我尝试了以下方法来显示标签中的文件名
第一种方法是显示完整路径和文件名

选择 | 换行 | 行号
  1. self.Label1.config(text=filename, fg="blue")

第二种方法是只显示文件名

选择 | 换行 | 行号
  1. self.Label1.config(text=os.path.basename(filename), fg="blue")

这两种方法似乎都奏效了。

标签: python

添加新评论