Прежде всего позвольте мне начать с того, что я начал кодировать около 6 недель go в процессе самообучения, поэтому весьма вероятно, что этот подход все еще может быть полным беспорядком.
I У меня есть программа, работающая (хорошо для меня) в cli, но я хочу сделать ее пригодной для людей, которые падают в обморок, когда они видят простой белый текст на черном фоне, которым они должны управлять без мыши.
Кроме того В моем главном окне, которое работает в фоновом режиме, я хотел, чтобы у меня было окно сообщения, которое отображает информацию, если все необходимые файлы были выбраны. как показано ниже.
files_to_open = {'File_1':'', 'File_2':'', 'File_3':''}
def selectfiles_window():
global message_window
message_window = Tk()
...
content = Label(message_window, text=get_open_file_status_txt(), **txt_status_general)
content.pack(side='top')
button_select_file1 = Button(message_window,text = 'File 1',font = txt_general['font'],command = lambda:(
select_file_action(name='File 1', filetypename='Excel workbook', extension='*.xlsx'),
content.configure(text=get_open_file_status_txt())))
button_select_file1(side='bottom')
message_window.mainloop()
def select_file_action(name, filetypename, extension):
global files_to_open
files_to_open[name] = filedialog.askopenfilename(title = f'Select {name}', filetypes=[(filetypename, extension)])
def get_open_file_status_txt():
global files_to_open
message =f'''
[File_1] is {"NOT SET" if (files_to_open["File_1"] == "") else "SET"}'''
return message
Я ожидал, что текст будет обновлен после закрытия диалогового окна файла (что частично работает, как и ожидалось).
Что я не понимаю: Если я нажму кнопку, чтобы выбрать File_1 и отменить ее в первый раз, значение для ключа File_1 будет установлено в (). В любое время после этого, если я нажму кнопку, чтобы выбрать File_1 и отменить его, значение для ключа File_1 будет установлено в ''. Если я выбираю файл, путь сохраняется как значение (также с первой попытки). Если я отменяю, он снова устанавливается на ''.
Кто-нибудь знает, почему значение устанавливается на () при первой отмене, но впоследствии работает так, как ожидалось?
Буду также признателен для другого решения, чтобы обновить текст, если мой подход полностью выключен.
Спасибо и наилучшими пожеланиями, Томас