Перевести код под gtk+3.6.4 |
Здравствуйте, гость ( Вход | Регистрация )
Перевести код под gtk+3.6.4 |
lss |
22.12.2015, 18:11
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 9.3.2014 Пользователь №: 4074 Спасибо сказали: 0 раз(а) Репутация: 0 |
Уважаемые, помогите перевести следующий код, чтобы работал с gtk+ 3.6.4:
|
|
|
Алексей1153 |
23.12.2015, 7:58
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а что именно не работает ?
навскидку - не видно, где создаётся память для widget. А на инициализацию переменных вообще тут поклали |
|
|
ViGOur |
23.12.2015, 9:52
Сообщение
#3
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Ну да, ни инициализации, ни выделения памяти, ничего!
Ты лучше скажи, что нужно сделать? Судя по коду, лабу! |
|
|
lss |
23.12.2015, 16:23
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 9.3.2014 Пользователь №: 4074 Спасибо сказали: 0 раз(а) Репутация: 0 |
а что именно не работает ?навскидку - не видно, где создаётся память для widget. А на инициализацию переменных вообще тут поклали Память выделяется, инициализация делается, но проблема не в этом. Этот код написан под gtk+2, в gtk+3 он просто не компилируется, нет там приведённых функций, там рисование через cario делается. Я ни в gtk+2, ни в gtk+3 мало что понимаю, просто есть необходимость скомпилировать код. Если сделать замену приведённых функций на конструкции, которые будут делать то же самое в gtk+3, то остальной код скомпилируется. Нашёл код, где рисование делается с помощью cairo. Компилируется, но рисование не работает (окно пустое выводит). На консоль выводит: Цитата (GTK3_0.exe:8176): GLib-GObject-WARNING **: gsignal.c:2459: signal `expose-event' is invalid for instance `02075000' Компилирую в 10-й студии, ОС windows XP x64 (пробовал в 15-й студии, ОС windows 8 - то же самое). gtk+ подключен из этого пакета: gtk+-bundle_3.6.4-20130921_win32. В чём может быть причина? КОД
Сообщение отредактировал ViGOur - 23.12.2015, 17:41
Причина редактирования: Длиный код обрамляем в ТЕГ expand
|
|
|
Iron Bug |
23.12.2015, 21:33
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
не вставляйте в посты портянки по полкилометра, кладите файлы на какой-нибудь pastebin и прикладывайте ссылку.
|
|
|
lss |
24.12.2015, 18:52
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 9.3.2014 Пользователь №: 4074 Спасибо сказали: 0 раз(а) Репутация: 0 |
не вставляйте в посты портянки по полкилометра, кладите файлы на какой-нибудь pastebin и прикладывайте ссылку. С кодом подсказали: нужно вместо "expose-event" (в g_signal_connect()) писать "draw". https://developer.gnome.org/gtk3/stable/ch2....html#id1574386 Там написано, что “expose-event” signal has been replaced by a new “draw” signal, which takes a cairo_t instead of an expose event. |
|
|
Текстовая версия | Сейчас: 28.11.2024, 3:54 |