我正在玩 gtkD (GTK+ 的 D 绑定)

我有一个 window 对象,实例 gtk.MainWindow. 。我想处理它的按键。

  • 如何?
  • 我如何处理特殊键(例如方向键、pgup/pgdn 等)?

PS我知道这类问题可以通过谷歌之类的东西来回答,但我在stackoverflow上看到了很多“简单”的问题,所以我认为问也没什么坏处。

另外,有时,基本的东西往往被隐藏在文档的页面之下。

有帮助吗?

解决方案

这是示例代码,可能会有所帮助

import gdk.Keysyms; //keys enums are defined here

private void func(Button sender)
{
    //button pressed
}

but.addOnClicked(&func);

private bool func2(GdkEventKey* ev, Widget sender)
{
    if(ev.keyval == GdkKeysyms.GDK_Tab) 
        return true; //we handle Tab ourselves and prevents default behaviour
    else
        return false; //we didnt handle it so gtk does default behaviour
}

win.addOnKeyPress(&func2);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top