在GTK +中处理按键(gtkD) [英] Handling key presses in GTK+ (gtkD)

查看:335
本文介绍了在GTK +中处理按键(gtkD)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我有一个窗口对象, gtk.MainWindow 的实例。我想处理它的按键。如何处理特殊键(例如箭头键,pgup / pgdn)?b
$ b等等)?





PS我知道这些问题可以通过google和东西,但我已经看到了很多简单的问题在stackoverflow,所以我认为要求没有伤害。



另外,有时,基本的东西往往被埋在

解决方案

这里是示例代码,可能有助于

  import gdk.Keysyms; //键枚举定义在这里

private void func(Button sender)
{
//按钮按下
}

但是。 addOnClicked(安培; FUNC);

private bool func2(GdkEventKey * ev,Widget sender)
{
if(ev.keyval == GdkKeysyms.GDK_Tab)
return true; //我们自己处理Tab并防止默认行为
else
return false; //我们没有处理它,所以gtk默认行为
}

win.addOnKeyPress(& func2);


I'm playing around with gtkD (a D binding for GTK+)

I have a window object, instance of gtk.MainWindow. I want to handle keypresses on it.

  • How?
  • How do I deal with special keys (e.g. arrow keys, pgup/pgdn etc)?

PS I know these kinds of questions can be answered with google and stuff, but I've seen much "simpler" questions on stackoverflow, so I figured asking doesn't hurt.

Plus, sometimes, basic things tend to be burried under pages of documentation.

解决方案

Here is sample code which may help

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);

这篇关于在GTK +中处理按键(gtkD)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆