LINUX.ORG.RU

gtk, какой виджет и как сетку


0

0

Цель - зона, в которой может происходить отрисовка. размеченная сеткой, по которой можно передвигать курсор. аля автокад.

Мои мысли - в качестве «полотна» взять, к примеру, gtk_image, завернуть в event_box. Не знаю только что делать с сеткой - вроде очевидно корректировать координаты курсора с помощью какого нибудь сигнала, вроде motion-notify_event, аппроксимируя до целых, но нет ли лучшего способа?

Надеюсь на подсказку более хорошего решения в общем и в частности с сеткой

но нет ли лучшего способа?

А какой вообще смысл во всем этом опенсоусе, если какой-нибудь несчастный грид нельзя взять и стырить из, например, inkscape?

thesis ★★★★★
()
Ответ на: комментарий от pseudo-cat

Талантливый нынче программист пошел.

thesis@thzhost:~/Downloads/temp/inkscape-0.47$ find . -name *grid*.h -print
./src/display/canvas-axonomgrid.h
./src/display/canvas-grid.h
./src/extension/internal/grid.h
./src/live_effects/lpe-constructgrid.h
thesis ★★★★★
()

GtkEvent + GtkDrawingArea и таки motion_notify. но ловить только при зажатой клавише, и приводить при определенном приближении к линии

ananas ★★★★★
()

Очень по-доброму вам советую использовать только gtk для стандартных «офисных» виджетов. А практически любую анимацию лучше на OpenGL, благо Gtk позволяет.

vertexua ★★★★★
()
Ответ на: комментарий от ananas

а отрисовывать как? pixbuf, поточечно? или как-то можно задать фон? а обновлять сетку expose_event-ом как и всё остальное отрисованное?

и как можно потом взять отрисованное чтобы удобно сохранять? pixbuf?

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

как уже предложили выше, для events - gtk_DrawingArea
по всем остальным вопросам - cairo

bass ★★★★★
()
Ответ на: комментарий от pseudo-cat

не pixbuf, а pixmap. каковые можно запихать в подобие стека для undo/redo

ловить на motion-notify и button-press/button-release. если нечто сложное - лучше действительно задействовать cairo. но для простых прямоугольников/окружностей достаточно будет и соответственного gdk_draw_blahblahblah

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.