Как показать путь к файлу с помощью кнопки «Обзор» в Python / Tkinter

Работая с Python и Tkinter, я пытаюсь найти способ показать путь file_path рядом с кнопкой «Обзор», но не смог этого сделать.

Вот мой код:

import os from tkFileDialog import askopenfilename from Tkinter import * content = '' file_path = '' #~~~~ FUNCTIONS~~~~ def open_file(): global content global file_path filename = askopenfilename() infile = open(filename, 'r') content = infile.read() file_path = os.path.dirname(filename) return content def process_file(content): print content #~~~~~~~~~~~~~~~~~~~ #~~~~~~ GUI ~~~~~~~~ root = Tk() root.title('Urdu Mehfil Ginti Converter') root.geometry("598x120+250+100") mf = Frame(root) mf.pack() f1 = Frame(mf, width=600, height=250) f1.pack(fill=X) f2 = Frame(mf, width=600, height=250) f2.pack() file_path = StringVar Label(f1,text="Select Your File (Only txt files)").grid(row=0, column=0, sticky='e') Entry(f1, width=50, textvariable=file_path).grid(row=0,column=1,padx=2,pady=2,sticky='we',columnspan=25) Button(f1, text="Browse", command=open_file).grid(row=0, column=27, sticky='ew', padx=8, pady=4) Button(f2, text="Process Now", width=32, command=lambda: process_file(content)).grid(sticky='ew', padx=10, pady=10) root.mainloop() #~~~~~~~~~~~~~~~~~~~ 

Просьба указать мне, как я могу показать путь к файлу вместе с кнопкой «Обзор» после выбора пользователем файла, как показано на этом изображении .

Заранее спасибо!

2 Solutions collect form web for “Как показать путь к файлу с помощью кнопки «Обзор» в Python / Tkinter”

Сначала измените эту строку:

  Entry(f1, width=50, textvariable=file_path).grid(row=0,column=1,padx=2,pady=2,sticky='we',columnspan=25) 

к этому:

 entry = Entry(f1, width=50, textvariable=file_path) entry.grid(row=0,column=1,padx=2,pady=2,sticky='we',columnspan=25) 

Затем в функции open_file() добавьте эти две строки непосредственно перед return :

 entry.delete(0, END) entry.insert(0, file_path) 

Объяснение : Во-первых, мы даем записи имя, чтобы его можно было изменить. Затем в функции open_file() мы open_file() его и добавляем текст для пути к файлу.

Вот diff, который исправляет вместо этого file_path , то есть использование StringVar() :

 --- old.py 2016-08-10 18:22:16.203016340 +0200 +++ new.py 2016-08-10 18:24:59.115328029 +0200 @@ -4,7 +4,6 @@ content = '' -file_path = '' #~~~~ FUNCTIONS~~~~ @@ -16,7 +15,7 @@ filename = askopenfilename() infile = open(filename, 'r') content = infile.read() - file_path = os.path.dirname(filename) + file_path.set(os.path.dirname(filename)) return content def process_file(content): @@ -40,7 +39,7 @@ f2 = Frame(mf, width=600, height=250) f2.pack() -file_path = StringVar +file_path = StringVar(root) Label(f1,text="Select Your File (Only txt files)").grid(row=0, column=0, sticky='e') 
  • tkinter не может добавить фотографию в класс, которая не включает mainluop
  • сохранить изображение в clipboatd - в Python / Tkinter
  • для создания кнопки при нажатии на печать номера на этой кнопке в поле ввода в python 3.3
  • import matplotlib failing без модуля с именем _tkinter on heroku
  • Создание LabelFrame внутри холста Tkinter
  • Изменение цвета текста при наведении курсора на текст с помощью Tkinter?
  • Python Tkinter Label перерисовка каждые 10 секунд
  • Основное фокусное окно Tkinter
  • Python - лучший язык программирования в мире.