Добавление графики gtk в существующее консольное приложение - общая память?
У меня есть параллельное приложение (параллельное моделирование аэропорта) с библиотекой system v (семафоры, очередь сообщений) и несколькими процессами.
Мне не разрешено использовать потоки, поэтому у меня есть поток процессов и несколько "плоскостей" процессов.
Я хотел бы добавить графику, чтобы показать трафик в аэропорту с библиотекой GTK (с Каиром).
Как добавить графику? Когда я пытался добавить его в процесс аэропорта, gtk_main блокировал бы все приложение. Я думал о создании другого процесса и добавлении графики в общую память, но я читал, что это не сработает.
Какой самый простой / лучший вариант?
Большое спасибо!
1 ответ
Похоже, вам следует создать отдельный процесс графического интерфейса, в который другие процессы могут отправлять сообщения. Один из способов сделать это - экспортировать интерфейс DBus, к которому могут подключаться другие процессы, для вашего графического процесса. Таким образом, когда ваш процесс GUI получает сообщение от другого процесса, ваш основной цикл GTK будет излучать сигнал, и вы можете запланировать обработчик сигнала для его обработки и соответствующим образом обновить GUI.