2015-06-14 7 views
2

У меня есть совместное приложение (одновременное моделирование аэропорта), сделанное с помощью библиотеки v (семафоры, очередь сообщений) и нескольких процессов.Добавление графики gtk в существующее консольное приложение - разделяемая память?

Мне не разрешено использовать потоки, поэтому у меня есть потоки процессов и несколько «плоскостных» процессов.

Я хотел бы добавить графику для отображения трафика в аэропорту с помощью библиотеки GTK (с Каиром).

Как добавить логотип? Когда я попытался добавить его в процесс в аэропорту, gtk_main заблокировал бы все приложение. Я думал о создании другого процесса и добавлении графики в общую память, но я читал, что это не сработает.

Что является самым простым/лучшим вариантом?

спасибо!

ответ

0

Похоже, вы должны сделать отдельный процесс графического интерфейса, который другие процессы могут отправлять сообщениям. Один из способов сделать это будет для вашего процесса GUI для экспорта DBus interface, к которому могут подключаться другие процессы. Таким образом, когда ваш процесс GUI получит сообщение от другого процесса, ваш основной цикл GTK выдает сигнал, и вы можете запланировать обработчик сигнала, чтобы справиться с ним и соответствующим образом обновить графический интерфейс.