我在 wxFrame 上有一个 wxTextControl 和一个 wxButton,并且我希望 Shift+Enter 导致单击按钮。wxAcceleratorTable文档说这是可能的:
“例如,您可以使用加速器表来启用带有多行文本控件的对话框,以接受 CTRL-Enter 表示‘确定’。”
我无法让它工作。你能给我一个关于如何一起使用 wxFrame、wxTextControl、wxButton 和 wxAcceleratorTable 的简短示例吗?
我在 wxFrame 上有一个 wxTextControl 和一个 wxButton,并且我希望 Shift+Enter 导致单击按钮。wxAcceleratorTable文档说这是可能的:
“例如,您可以使用加速器表来启用带有多行文本控件的对话框,以接受 CTRL-Enter 表示‘确定’。”
我无法让它工作。你能给我一个关于如何一起使用 wxFrame、wxTextControl、wxButton 和 wxAcceleratorTable 的简短示例吗?
事实证明,wxAcceleratorTable 只能与 wxGTK 上的 wxEVT_MENU 一起使用。所以代码看起来像这样:
wxAcceleratorEntry shiftReturn(wxACCEL_SHIFT, WXK_RETURN, wxID_BACKWARD);
SetAcceleratorTable(wxAcceleratorTable(1, &shiftReturn));
Bind(wxEVT_MENU, &FindFrame::OnPrev, this, wxID_BACKWARD);
相反,我们决定为 GTK 和 OSX 使用原生加速器而不是 wx 加速器,这样键盘快捷键就会为目标按钮设置动画。请参阅Poedit 的 GitHub 页面上的604cdb5、b00a76e和91a8d2a。