Обновление пути к файлу при получении каталога - PullRequest
1 голос
/ 10 июля 2019

Я новичок в Python и пытаюсь создать графический интерфейс, который требует и входной и выходной каталог. Моя цель состоит в том, чтобы текстовое поле было новым для кнопки обзора, и при выборе каталога в текстовом поле будет отображаться путь к каталогу. Однако я не уверен, как изменить текст, отображаемый при нажатии кнопки в функции.

from tkinter import *
from tkinter import filedialog
import tkinter as tk

class App:

    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)
        T_out= tk.Text(root, height=1, width=50)
        T_out.pack(side=TOP)
        self.hi_there= Button(frame, text="Browse", command=self.getoutputdir)
        self.hi_there.pack(side=LEFT)
        T_in = tk.Text(root, height=1, width=50)
        T_in.pack(side=LEFT)
        self.input_1= Button(frame, text="Browse", command=self.getinputdir)
        self.input_1.pack(side=LEFT)

    def getoutputdir(self):
        global outputdir
        outputdir = filedialog.askdirectory(parent=root,initialdir="/",title='Please select the output directory')
        T_out.text(tk.END,outputdir)
    def getinputdir(self):
        global inputdir
        inputdir = filedialog.askdirectory(parent=root,initialdir="/",title='Please select the input directory')
        T_in.text(tk.END,inputdir)
root = Tk()
root.title('GUI for CZI')
app = App(root)

root.mainloop()

1 Ответ

0 голосов
/ 10 июля 2019

Есть две основные проблемы, мешающие этому работать.Первый в функциях getinputdir и getoutputdir.Вы должны убедиться, что ссылки на T_in и T_out доступны.Вы можете сделать это, сохранив их в объекте App.

Вторая основная проблема - .text - недопустимый метод.Вы можете использовать .delete, чтобы очистить его, затем .insert, чтобы вставить новый каталог.

from tkinter import *
from tkinter import filedialog
import tkinter as tk

class App:

    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)
        self.T_out= tk.Text(root, height=1, width=50)
        self.T_out.pack(side=TOP)
        self.hi_there= Button(frame, text="Browse", command=self.getoutputdir)
        self.hi_there.pack(side=LEFT)
        self.T_in = tk.Text(root, height=1, width=50)
        self.T_in.pack(side=LEFT)
        self.input_1= Button(frame, text="Browse", command=self.getinputdir)
        self.input_1.pack(side=LEFT)

    def getoutputdir(self):
        global outputdir
        outputdir = filedialog.askdirectory(parent=root,initialdir="/",title='Please select the output directory')
        self.T_out.delete(1.0, tk.END)
        self.T_out.insert(tk.END, outputdir)
    def getinputdir(self):
        global inputdir
        inputdir = filedialog.askdirectory(parent=root,initialdir="/",title='Please select the input directory')
        self.T_in.delete(1.0, tk.END)
        self.T_in.insert(tk.END, inputdir)
root = Tk()
root.title('GUI for CZI')
app = App(root)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...