gtkmm条目缺少signal_key_press_event上的键
gtkmm entry missing keys on signal_key_press_event
,所以我一直在尝试GTKMM,因为我想将一些代码迁移到C ,我认为这会更容易。
我曾经能够在C中使用看起来像这样的东西:
g_signal_connect(entry, "key-release-event", G_CALLBACK(receiveKeyPressed), NULL);
但是,当我尝试在GTKMM中使用类似系统时,似乎:
entry->signal_key_pressed().connect( sigc::ptr_fun(*receiveKeyPressed) );
它完全错过了所有键盘,除了换档键和选项卡等。
。任何人都可以解释为什么?
首先连接处理程序:
标志:运行最后
#include <gtkmm.h>
#include <iostream>
int main()
{
auto app = Gtk::Application::create();
Gtk::Window window;
Gtk::Entry entry;
window.add(entry);
entry.signal_key_press_event().connect([&](GdkEventKey* event)->bool{
std::cout<<"pressed: "<<std::hex<<event->keyval<<" "<<std::hex<<event->state<<std::endl;
return false; //to propagate the event further
}, false); //run before other handlers (from entry)
window.show_all();
return app->run(window);
}
相关文章:
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- cl::Event::waitForEvents returns -7 (CL_EXEC_STATUS_ERROR_ F
- 为电容式触摸传感器设置延迟以防止"double press"
- QT QPushButton Press Event
- mmap with /dev/input/event*
- 如何使用 epoll(void* event.data.ptr) 管理 Connection 的生命周期
- touchpad + QToolButton = supperios press
- QGraphicsScene selectionChanged() event
- 为什么 event.mouseWheelScroll.delta 总是使用 SFML 返回 0
- 使用 Visual Basic 更改C++中的"Press any key to Continue..."
- OpenCL C++绑定:等待单个 cl::Event
- 你如何在C++"Press ENTER to continue, anything else to quit"
- 类型 "void (Biometria::*)(char *idSensor, GRCAP_FINGER_EVENTS event)" 的参数与类型 "GRCAP_STATUS_EVENT_PROC
- 为什么C++中的"Press Enter to Continue"代码不起作用?
- 在/dev/input/event*中动态查找鼠标事件id
- wxwidgets Bind()项的计算结果不是在event.h中使用1个参数的函数
- 如何让我的 c++ 程序自行"press keys"?
- wxWidgets Event-Propagation from Dialogs in C++
- 为什么对字符串使用 "t" 而不是 "<press TAB>"?
- 控制台应用程序不打印"Press any key to continue . . ."