Вам нужно вынести парсинг в отдельную горутину, так как диалоговое окно закрывается только после завершения выполнения callback функции. А так как вы весь парсинг выполняете в ней, то диалог, соответственно, ждёт.
testStart := widget.NewButtonWithIcon(" Test ", theme.InfoIcon(), func() {
dialog.ShowConfirm(
"Начать парсинг?",
fmt.Sprintf("Ссылки для парсинга получены"),
func(yes bool) {
if yes {
progress.Show() // Порказываем и запускаем прогрессбар
progress.Start()
fmt.Println("Start")
go doTheJob()
} else {
return
}
},
myWindow,
)
})
func doTheJob() {
qty, file_name := parsing(urls) // функция - парсинг товаров по ссылкам
//time.Sleep(5 * time.Second)
// Обновление виджетов разрешено делать только из главной горутины,
// поэтому нужно шедулить обновление виджетов через fyne.Do
fyne.Do(func() {
progress.Stop()
dialog.NewInformation("Данные получены", "Все работает!", myWindow).Show()
})
}