Похоже, проблема в том, что строки disable_all_buttons() и btnGo.configure(text = self.folder_source + ' >> ' + self.folder_target) выполняются до начала for цикла, а enable_all_buttons() строки btnGo.configure(text='Let's go!') и выполняются после завершения for цикла.
Чтобы исправить это, вы можете использовать update() метод Tk класса tkinter для обновления графического интерфейса после выполнения строк disable_all_buttons() и btnGo.configure(text = self.folder_source + ' >> ' + self.folder_target) и до forзапуска цикла. Затем вы можете update() снова использовать этот метод после завершения for цикла и до выполнения строк и enable_all_buttons().btnGo.configure(text='Let's go!')
Вот пример того, как вы можете это сделать:
def go_copy(self):
self.disable_all_buttons()
self.btnGo.configure(text = self.folder_source + ' >> ' + self.folder_target)
self.update()
for path, directories, files in sorted(os.walk(self.folder_source)):
for file in sorted(files):
if file.endswith('.mp3'):
path_source = os.path.join(path, file)
d = os.path.basename(self.folder_source)
f = os.path.relpath(path_source, self.folder_source)
path_target = os.path.join(self.folder_target, d, f)
os.makedirs(os.path.dirname(path_target), exist_ok=True)
shutil.copyfile(path_source, path_target)
self.update()
self.btnGo.configure(text='Let's go!')
self.enable_all_buttons()
Это должно сделать кнопки отключенными во время процесса копирования и снова включить их, когда процесс будет завершен.