Я пытаюсь создать меню для школьного проекта и хотел, чтобы оно читало файлы в заданном каталоге и создавало кнопки на экране в зависимости от того, какие файлы там есть. Моя главная проблема на данный момент в том, что я не могу заставить Баттона отправлять нужную мне информацию.
Я пытался использовать функции по-другому, но это самое близкое, что я могу получить к тому, что я хочу.
class Menu(Frame):
def __init__(self, master=None):
#working out how big to make the window
global files_in_area
files_in_area = []
files_in_area = os.listdir(menu_folder_loc)
print files_in_area
a = len(files_in_area)
b = 3
rows = a / b
rows = rows + 1
window_height = rows * 56
root.geometry('%dx%d+%d+%d' % (450, window_height, 0, 0))
Frame.__init__(self, master)
self.master = master
self.init_menu()
def init_menu(self):
self.master.title("Menu")
self.pack(fill=BOTH, expand=1)
for i in range(0, len(files_in_area)):
#button placment
a = i
b = 3
row_no = a / b
row_no = row_no + 1
column_no = a % b
global file_name
file_name = str(files_in_area[i])
b1 = Button(self, text=file_name, bg= "red", height=3, width=20, command=self.client_print_file).grid(row=row_no, column=column_no, sticky=W)
def client_print_file(self):
print file_name
У меня есть код для работы, когда я нахожу файлы и помещаю их в окно tkinter, и когда я нажимаю на кнопку, он должен открыть файл (сейчас я просто печатаю имя файла, чтобы сделать уверен, что это работает). Однако он просто печатает последний файл в списке.
Извините, если этот вопрос немного сбивает с толку, и заранее спасибо.