【问题标题】:How do I make wxAcceleratorTable work with wxFrame and wxTextCtrl?如何使 wxAcceleratorTable 与 wxFrame 和 wxTextCtrl 一起工作?
【发布时间】:2015-07-02 08:45:18
【问题描述】:

我在 wxFrame 上有一个 wxTextControl 和一个 wxButton,并且我希望 Shift+Enter 使按钮被点击。 wxAcceleratorTable documentation 说这是可能的:

“例如,您可以使用快捷键表来启用带有多行文本控件的对话框,以接受 CTRL-Enter 表示“确定”。”

我无法让它工作。能否给我一个简短的例子,说明如何一起使用 wxFrame、wxTextControl、wxButton 和 wxAcceleratorTable?

【问题讨论】:

  • 你能在这里显示你的代码不起作用吗?

标签: wxwidgets wxtextctrl


【解决方案1】:

事实证明,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 加速器,这样键盘快捷键就会为目标按钮设置动画。请参阅604cdb5b00a76e91a8d2a Poedit's GitHub page

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 2020-02-16
    • 2013-02-11
    • 1970-01-01
    • 2011-08-14
    • 2017-08-13
    • 2023-02-02
    • 2021-12-19
    相关资源
    最近更新 更多