2
저는 gtk와 GtkD의 초보자입니다.
이제 키보드에서 this을 참조하여 입력을 얻으려고합니다.
그러나 3 년 동안 툴킷을 일부 변경 한 것으로 보입니다.
아래 코드를 작성했습니다. 그러나 콜백 함수에서 ev의 이상한 값이 있습니다.GtkD를 사용한 키 입력
혼자서 해결할 수있는 전망이 없습니다.
그럼 어디서 수정해야하는지 알려주시겠습니까?
미리 감사드립니다. 또한 환자의 영어 실력이 좋았습니다.
저는 gtkD-2.1.1 및 gtk + 3.2.3을 사용하고 있습니다.
import std.stdio;
import gtkc.gdktypes;
import gtk.MainWindow;
import gtk.Widget;
import gdk.Event;
import gtk.Main;
class Window : MainWindow{
immutable width = 200;
immutable height = 200;
this(){
super("input test");
setDefaultSize(width,height);
setEvents(EventMask.KEY_PRESS_MASK); // Actually I don't know how this works
auto callback_func = cast(bool delegate(Event,Widget))&get_key; // I doubt this cast
this.addOnKeyPress(callback_func);
showAll();
}
bool get_key(GdkEventKey* ev, Widget widget){
writefln("sender %s", widget);
writefln("type %x",ev.type);
writefln("window* %x",ev.window);
writefln("send_event %x",ev.sendEvent);
writefln("time %x",ev.time);
writefln("state %x",ev.state);
writefln("keyval %x",ev.keyval);
writefln("length %x",ev.length);
writefln("gchar* %x",ev.string);
writefln("hardware_keycode %x",ev.hardwareKeycode);
writefln("group %x",ev.group);
writefln("is_modifier %x\n",ev.bitfield0);
return true;
}
}
void main(string[] args){
Main.init(args);
auto win = new Window();
Main.run();
}
이 작품은! 나는 더 많은 문서를 읽으려고 노력할 것이다. 고맙습니다!! – ggkuron