crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Приоритет событий GTK
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Гость_Raptor_* Дата 23.2.2014, 18:10
  Что то специалистов по GTK негусто, отвечаю сам себе:
при создании виджета надо вместо инициализации функции обработки клавиатуры
widget_class->key_press_event
добавить тот же самый обработчик с помощью
g_signal_connect при создании виджета (я по быстрому сделал это в expose с помощью статической переменной в роли флага)
после этого можно блокировать событие нажатия клавиши функцией g_signal_handlers_block_by_func прямо внутри этого события,
обработать все остальные события чем то вроде

    static void ProcessGTKEvent(DWORD dwMaxEvent=-1)
    {
        while (gtk_events_pending())
        {
            gtk_main_iteration();
            if(dwMaxEvent!=-1)
            {
                dwMaxEvent--;
                if(dwMaxEvent==0)
                break;
            }
        }
    }


и разблокировать события от клавиатуры функцией
g_signal_handlers_unblock_by_func
Гость_raptor_* Дата 19.2.2014, 10:18
  Пишу свой виджет, hex-редактор, в нем обрабатываются нажатия клавиатуры, например стрелок, при нажатии двигается каретка и перерисовывается виджет функцией gtk_widget_queue_draw, если нажать кнопку и не отпускать, то получается одно событие expose, при отпускании кнопки, а хотелось бы чтобы оно возникало после каждого события нажатия кнопки. Как это сделать? Тое есть имеем:
key_press
key_press
key_press
key_press
key_press
expose

а хотелось бы
key_press
expose
key_press
expose
key_press
expose
key_press
expose

Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 23:24