Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Что лучше использовать, чтобы отрисовывать wireframe под GTK+  (Прочитано 1409 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Xepec

  • Автор темы
  • Участник
  • *
  • Сообщений: 156
    • Просмотр профиля
В общем, пишу программку для моделирования сборки домика из спичек :)

Что лучше взять в качестве вьюпортов для 4 видов?

Желательно, чтобы была возможность рисовать сплайны или их аналоги.

Оффлайн Xepec

  • Автор темы
  • Участник
  • *
  • Сообщений: 156
    • Просмотр профиля
Нашел GnomeCanvas...
( http://library.gnome.org/devel/libgnomecanvas/stable/ )
Только почему-то не работает даже их пример. :(

#include <gtk/gtk.h>
#include <libgnomecanvas/libgnomecanvas.h>

int main (int argc, char *argv[])
{
gtk_init(&argc, &argv);

GtkWidget *canvas_widget;

gdk_rgb_init(  );
gtk_widget_push_visual(gdk_rgb_get_visual(  ));
gtk_widget_push_colormap(gdk_rgb_get_cmap(  ));
canvas_widget = gnome_canvas_new_aa(  );
gtk_widget_pop_visual(  );
gtk_widget_pop_colormap(  );
   
gtk_main();
return 0;
}

И вот что оно выдает:
(match:13973): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table->ref_count > 0' failed

(match:13973): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table->ref_count > 0' failed

(match:13973): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table->ref_count > 0' failed

(match:13973): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table->ref_count > 0' failed

(match:13973): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table->ref_count > 0' failed
*** glibc detected *** ./match: realloc(): invalid old size: 0x08089a30 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb73e0803]
/lib/tls/i686/cmov/libc.so.6(realloc+0x10b)[0xb73e275b]
/usr/lib/libglib-2.0.so.0(g_realloc+0x35)[0xb751acb5]
/usr/lib/libglib-2.0.so.0[0xb75347dc]
/usr/lib/libglib-2.0.so.0(g_string_append_vprintf+0x4d)[0xb753483d]
/usr/lib/libglib-2.0.so.0(g_string_append_printf+0x22)[0xb75348c2]
/usr/lib/libgtk-x11-2.0.so.0[0xb7927a14]
/usr/lib/libgtk-x11-2.0.so.0[0xb7927908]
/usr/lib/libgtk-x11-2.0.so.0[0xb7927908]
/usr/lib/libgtk-x11-2.0.so.0[0xb7927908]
/usr/lib/libgtk-x11-2.0.so.0[0xb7927908]
/usr/lib/libgtk-x11-2.0.so.0[0xb792796f]
/usr/lib/libgtk-x11-2.0.so.0[0xb792812d]
/usr/lib/libgtk-x11-2.0.so.0[0xb7928fb2]
/usr/lib/libgtk-x11-2.0.so.0[0xb792991b]
/usr/lib/libgtk-x11-2.0.so.0[0xb792a215]
/usr/lib/libgtk-x11-2.0.so.0(gtk_rc_reparse_all_for_settings+0x12b)[0xb792a34b]
/usr/lib/libgtk-x11-2.0.so.0(gtk_settings_get_for_screen+0xb4)[0xb7945c34]
/usr/lib/libgtk-x11-2.0.so.0(gtk_settings_get_default+0x25)[0xb7945dc5]
/usr/lib/libgtk-x11-2.0.so.0[0xb795ff6c]
/usr/lib/libgobject-2.0.so.0(g_type_create_instance+0x45e)[0xb75b72ae]
/usr/lib/libgobject-2.0.so.0[0xb759c252]
/usr/lib/libgobject-2.0.so.0(g_object_newv+0x318)[0xb759ca18]
/usr/lib/libgobject-2.0.so.0(g_object_new_valist+0x281)[0xb759d571]
/usr/lib/libgobject-2.0.so.0(g_object_new+0x40)[0xb759d6e0]
/usr/lib/libgtk-x11-2.0.so.0(gtk_style_new+0x27)[0xb7958017]
/usr/lib/libgtk-x11-2.0.so.0(gtk_widget_get_default_style+0x2d)[0xb79fde6d]
/usr/lib/libgtk-x11-2.0.so.0[0xb79fdf0e]
/usr/lib/libgobject-2.0.so.0(g_type_create_instance+0x2ac)[0xb75b70fc]
/usr/lib/libgobject-2.0.so.0[0xb759c252]
/usr/lib/libgtk-x11-2.0.so.0[0xb78cc577]
/usr/lib/libgobject-2.0.so.0(g_object_newv+0x318)[0xb759ca18]
/usr/lib/libgobject-2.0.so.0(g_object_new_valist+0x2e6)[0xb759d5d6]
/usr/lib/libgobject-2.0.so.0(g_object_new+0x40)[0xb759d6e0]
/usr/lib/libgnomecanvas-2.so.0(gnome_canvas_new_aa+0x45)[0xb7c21675]
./match(__gxx_personality_v0+0x10f)[0x80488eb]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7389450]
./match(__gxx_personality_v0+0x75)[0x8048851]
======= Memory map: ========
08048000-08049000 r-xp 00000000 08:25 5379820    /home/nick/NetBeansProjects/Match/match
08049000-0804a000 rw-p 00000000 08:25 5379820    /home/nick/NetBeansProjects/Match/match
0804a000-0808d000 rw-p 0804a000 00:00 0          [heap]
b6a00000-b6a21000 rw-p b6a00000 00:00 0
b6a21000-b6b00000 ---p b6a21000 00:00 0
b6b2d000-b6b59000 r--p 00000000 08:25 7228703    /usr/share/locale-langpack/ru/LC_MESSAGES/gtk20-properties.mo
b6b59000-b6b62000 r-xp 00000000 08:25 4169814    /lib/tls/i686/cmov/libnss_files-2.7.so
b6b62000-b6b64000 rw-p 00008000 08:25 4169814    /lib/tls/i686/cmov/libnss_files-2.7.so
b6b64000-b6b6c000 r-xp 00000000 08:25 4169816    /lib/tls/i686/cmov/libnss_nis-2.7.so
b6b6c000-b6b6e000 rw-p 00007000 08:25 4169816    /lib/tls/i686/cmov/libnss_nis-2.7.so
b6b6e000-b6b75000 r-xp 00000000 08:25 4169812    /lib/tls/i686/cmov/libnss_compat-2.7.so
b6b75000-b6b77000 rw-p 00006000 08:25 4169812    /lib/tls/i686/cmov/libnss_compat-2.7.so
b6b8a000-b6b9f000 r--p 00000000 08:25 7228697    /usr/share/locale-langpack/ru/LC_MESSAGES/gtk20.mo
b6b9f000-b6bde000 r--p 00000000 08:25 7227971    /usr/lib/locale/ru_RU.utf8/LC_CTYPE
b6bde000-b6cbf000 r--p 00000000 08:25 7245457    /usr/lib/locale/ru_RU.utf8/LC_COLLATE
b6cbf000-b6cc3000 rw-p b6cbf000 00:00 0
b6cc3000-b6cc6000 r-xp 00000000 08:25 4169882    /lib/libgpg-error.so.0.3.0
b6cc6000-b6cc7000 rw-p 00002000 08:25 4169882    /lib/libgpg-error.so.0.3.0
b6cc7000-b6ccb000 r-xp 00000000 08:25 7182350    /usr/lib/libXdmcp.so.6.0.0
b6ccb000-b6ccc000 rw-p 00003000 08:25 7182350    /usr/lib/libXdmcp.so.6.0.0
b6ccc000-b6d8b000 r-xp 00000000 08:25 7185125    /usr/lib/libasound.so.2.0.0
b6d8b000-b6d8f000 rw-p 000be000 08:25 7185125    /usr/lib/libasound.so.2.0.0
b6d8f000-b6dda000 r-xp 00000000 08:25 4169992    /lib/libgcrypt.so.11.2.3
b6dda000-b6ddc000 rw-p 0004a000 08:25 4169992    /lib/libgcrypt.so.11.2.3
b6ddc000-b6ddd000 rw-p b6ddc000 00:00 0
b6ddd000-b6dec000 r-xp 00000000 08:25 7180346    /usr/lib/libtasn1.so.3.0.12
b6dec000-b6ded000 rw-p 0000e000 08:25 7180346    /usr/lib/Aborted

В чем может быть дело?

Оффлайн Xepec

  • Автор темы
  • Участник
  • *
  • Сообщений: 156
    • Просмотр профиля
Хмммм... нашел еще один пример. Вот его начало:
#include <gnome.h>
int main(int argc, char* argv[])
{
  GtkWidget* window;
  GtkWidget* sw;
  GtkWidget* canvas;
  gtk_init(&argc, &argv);
  gnome_init("canvas-example", "0.0", argc, argv); 
Вылетает сразу на gnome_init c "Segmentation fault".

Народ помогите! Что делать?
« Последнее редактирование: 25 Октябрь 2008, 01:03:10 от Xepec »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Начни с чего-нибудь по легче
http://library.gnome.org/devel/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD
И почитай книжек по программированию. Помогает.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Прикладываю пример. Работает.
перед использованием надо убедиться что у тебя все правильно установлено.
sudo aptitude install build-essential libgtk2.0-dev libgnomecanvas2-dev

пример собирается командой
cc gnome_canvas_test.c `pkg-config --cflags --libs gtk+-2.0` `pkg-config --cflags --libs libgnomecanvas-2.0 `Перед сборкой его естественно надо распаковать

Оффлайн Xepec

  • Автор темы
  • Участник
  • *
  • Сообщений: 156
    • Просмотр профиля
Спасибо огромное, но на самом деле все решилось еще вчера, просто не успел написать.

Решилось перезапуском иксов. Видать чего-то до этого не правильно кикнул.

ЗЫ Хелло ворлд уже давно писал, и билдил с мейкфайлом с примерно таким же инклюдом. И програмлю давно, только к сожалению на сях еще практически ничего не писал - отсюда и проблемы :) ...

 

Страница сгенерирована за 0.166 секунд. Запросов: 24.