Я разрабатываю приложение с C++ и GTK3, но я застрял. Я создал визуальное приложение с поляной, имеющей три столбца, а один из них, средний, - DrawingArea. В этой DrawingArea я хочу нарисовать несколько кругов в той точке, которую я хочу, после нажатия кнопки, и в этом круге есть разные события мыши (например, перетаскивание, двойной щелчок, правый клик ...). Я сделал первую вещь (нарисую круг после нажатия кнопки), следуя official documentation, но проблема в том, что я не знаю, как делать события мыши, но я подумал об этом, и у меня есть несколько разных решений (I не знаю, если они являются BESTS решения или, возможно, есть и лучше):События мыши в контексте cairo
Я думаю, что лучший способ для создания сигнала к контексту cairomm, но я ничего не видел, чтобы сделать это. Может быть, путь был бы создать поверхность Каира или что-то в этом роде.
Каждый раз, когда я нажимаю для создания круга, мне нужно будет создать виджет gtk, в котором я могу обрабатывать события мыши. Проблема здесь в том, что виджет должен иметь круглую форму и должен быть доступен. Можно ли создать круговую чертежную линию? Это может быть лучше. Я видел способ создания пользовательских виджетов here.
Использование goocanvasmm. Проблема здесь в том, что goocanvasmm имеет небольшую документацию (извините, что не могу опубликовать более двух ссылок из-за моей репутации), и я думаю, что это не лучшее решение, я предпочитаю использовать cairomm.
Это приложение было написано в C с помощью GTK2 и кружки были нарисованы с помощью gnomecanvas, добавляя сигналы в легком пути к каждой окружности; и теперь я перемещаю это приложение на C++ и GTK3, чтобы обновить его.
Я очень новичок в GTK (и графических интерфейсах в целом), но я искал решения в течение нескольких часов, и я не знаю, что является лучшим способом для продолжения моей работы.
Спасибо за вашу помощь :)
Спасибо, ptomato! Я забыл опубликовать здесь, что, наконец, я делаю это с goocanvasmm; это лучшее, простое и практичное решение :) – bmenendez
Для читателей, которые видят этот ответ после 2015 года, библиотека goocanvas больше не поддерживается ... К сожалению. – Oz123