Задать вопрос
Ответы пользователя по тегу Go
  • GO + FYNE GUI как запустить скрипт после подтверждения в диалоговом окне dialog.ShowConfirm?

    Vamp
    @Vamp
    Вам нужно вынести парсинг в отдельную горутину, так как диалоговое окно закрывается только после завершения выполнения 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()
    	})
    }
    Ответ написан
    1 комментарий