Я хотел бы создать функцию или класс с соответствующим форматированием для создания текстовой метки, поля ввода и кнопки.Кнопка позволит мне просмотреть мой каталог и заполнить поле ввода выбранным каталогом.Код, который у меня есть, позволяет мне делать большую часть этого, однако каталог всегда заполняется в последнем поле ввода, а не в том, к которому относится кнопка.
Я новичок в tkinter и графических интерфейсах, поэтому извиняюсь, если это простое решение, я предполагаю, что проблема связана с root.name.set
ссылкой на функцию, которая была вызвана последней.
from tkinter import *
from tkinter import filedialog
def askdirectory():
dirname = filedialog.askdirectory()
root.name.set(dirname)
def dirField(root, label, rowNum):
text = StringVar()
text.set(label)
dirText = Label(root, textvariable = text, height =4)
dirText.grid(row = rowNum, column = 1)
dirBut = Button(root, text = 'Browse', command = askdirectory)
dirBut.grid(row = rowNum, column = 3)
root.name = StringVar()
adDir = Entry(root,textvariable = root.name, width = 100)
adDir.grid(row = rowNum, column = 2)
if __name__ == '__main__':
root = Tk()
root.geometry('1000x750')
adText = "Select directory of Ads"
userText = "Select directory of User credentials"
adField = dirField(root, adText, 1)
userField = dirField(root, userText, 2)
root.mainloop()