Крючок клавиатуры виджета GTKmm - PullRequest
0 голосов
/ 14 марта 2020

Я пытался реализовать свой собственный виджет, поддерживающий ввод с клавиатуры, предоставленный пользователем, предоставляя себе стандартный код; https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en с изменением / добавлением следующих строк:

в mywidget. cc, функция; MyWidget::on_realize(), строка 180

attributes.event_mask = get_events () | Gdk::ALL_EVENTS_MASK; 

в mywidget.h, переопределяя два виртуальных метода, унаследованных от Gtk :: Object

bool on_key_release_event(GdkEventKey* key_event) override;
bool on_key_press_event(GdkEventKey* key_event) override;

в mywidget. cc

bool MyWidget::on_key_press_event(GdkEventKey* key_event) {
  std::cout << "Key press" << std::endl;

  return true;
}

bool MyWidget::on_key_release_event(GdkEventKey* key_event) {
  std::cout << "Key press" << std::endl;

  return true;
}

однако, похоже, это не сработает, я не получаю сообщений о стандартном выводе вообще, как ни странно, другие события, такие как on_enter_notify_event, работают нормально, чего мне не хватает?

...