Здравствуйте!
Есть программа, каковая рассчитывает некоторую модель (многоагентное моделирование). Программа на С++, но будет интерфейс к питону через boost python. Сейчас её графический интерфейс заключается единственно в выводе в текстовый терминал, что несколько ограничивает возможности визуализации. Посему я хочу сделать графический интерфейс, однако поскольку я имею о нём весьма слабое представление, то обращаюсь к вам.
Суть такова. Я хочу, чтобы можно было бы запускать/останавливать моделирование и изменять некоторые его параметры, причём как из графического интерфейса, так и из командной строки ipython. И, разумеется, чтобы и графический, и командный интерфейс были доступны в то время, когда идёт расчёт, и картинка бы рисовалась в реальном времени. Картинку же я думаю сделать двух различных видов - в мелком масштабе, когда каждой клетке мира (мир двумерный) соответствует цветной пиксель, и в крупном масштабе - когда рисуется каждый агент и для него отображается некоторая текстовая информация. Желательно, чтобы хотя бы первый вариант работал быстро, но главный приоритет - всё же настраиваемость (скажем, чтобы в питоне можно было бы определить функцию задания цвета и тут же её применить). Также желательно рисовать графики в реальном времени (в идеале - matplotlib).
Посоветуйте следующее:
- Какую библиотеку(и) выбрать? И что по ней читать?
- Также хотелось бы почитать что-либо об принципах функционирования графических интерфейсов. В частности, какие там потоки, когда они создаются и что они делают - а то порой я строю графики в матплотлибе, в одних случаях командная строка недоступна, пока окно открыто, а в других доступна, и я не понимаю, от чего это зависит.
- А также что-либо об многопоточности. Интересует как теория, так и многопоточность в питоне, ибо об ней ходят различные страшилки.
- И хотелось бы услышать совет, как мне лучше организовать программу. Скажем, сколько и каких потоков создавать и как производить общение между ними.
Заранее благодарен.