Найти - Пользователи
Полная версия: Как вывести сообщения из консоли в модальное окно?
Начало » Python для новичков » Как вывести сообщения из консоли в модальное окно?
1
Artur87
Прога состоит из двух файлов: main.py и net.py
В первом файле реализован интерфейс. Можно вводить значения параметров через spinbox, textedit, combobox и т.д.
Во втором файле реализована нейронная сеть на основе библиотеки keras, которая принимает параметры из файла main.py.

В интерфейс я добавил кнопку “Запуск”, которая запускает обучение модели сети, то есть те функции, которые есть в net.py.

Обучение идет долго, минут 30-50, в течение которых в консоли нейросеть выдает сообщения о каждом выполненном шаге с указанием ошибки обучения, вот так:
epoch 1/100, metrics =
epoch 2/100, metrics =

epoch 100/100, metrics =

Если в это время даже просто щелкнуть по окну программы с интерфейсом, окно зависает (не отвечает). По сути, имеем большой косяк.

Чтобы не выводить обучение (исполнение файла net.py) в отдельный поток, я хочу при нажатии на кнопку “Запуск” выводить модальное окно. Если я правильно думаю, это должно убрать подобный конфликт, так как главное окно будет недоступно, пока модальное не закроешь. Или нет?

В модальном окне хочу выводить те самые сообщения из консоли.
Если надо будет прервать обучение, то можно будет нажать на кнопку “стоп” в модальном окне.
Если обучение завершено, надо как-то вывести диалоговое окно с соответствующим сообщением.

Подскажите, пожалуйста, как можно реализовать такое модальное окно. Пишу на pyqt5
Или другие идеи. Заранее спасибо!
Rodegast
> Или нет?

Нет. Процесс обучения должен работать в отдельном потоке, в основное окно информация должна передаваться при помощи сигналов.
Artur87
1) надо все содержимое исполняемых функций файла net.py заключить в поток?
2) а как выводить сообщения, которые формирует нейросеть? При помощи каких команд, функций?
Rodegast
1) Все тяжёлые функции должны быть вынесены в отдельный поток, иначе будет блокирован GUI
2) Вот пример передачи сообщений между потоками. У тебя будут сигналы нового стиля, но принцип тот-же.
http://python.su/forum/topic/24662/?page=2#post-130903
Artur87
Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB