Tôi đang cố gắng tạo ứng dụng gtk đơn giản cho gnome-shell bằng gjs.GJS: Gtk.TextView-press-event không hoạt động
Cửa sổ của nó chỉ chứa Gtk.TextView và tôi muốn xử lý sự kiện khi người dùng nhập.
Đây là mã của tôi:
#!/usr/bin/gjs
var Gtk = imports.gi.Gtk;
function MainWindow() {
this._init();
}
MainWindow.prototype = {
_init: function() {
this.window = new Gtk.Window ({
title: "Just Calculator",
window_position: Gtk.WindowPosition.CENTER,
default_height: 400,
default_width: 440,
});
//this.window.show();
this.window.connect ("hide", Gtk.main_quit);
this.window.connect ("delete-event", function() {
Gtk.main_quit();
return true;
});
this.textbox = new Gtk.TextView();
this.textbox.connect('key-press-event', this._keyPress);
var sw = new Gtk.ScrolledWindow ({shadow_type:Gtk.ShadowType.IN});
sw.add (this.textbox);
this.window.add(sw);
this.window.show_all();
},
_keyPress: function(textview, event) {
print(event, event.type, event.keyval);
textview.buffer.text = 'ok';
return true;
}
}
Gtk.init (null, null);
var window = new MainWindow();
Gtk.main();
Nó hoạt động thường nhưng tôi không thể đọc event.keyval: giao diện điều khiển đầu ra là "không xác định":
[union instance proxy GIName:Gdk.Event [email protected] [email protected]] undefined undefined
Có thể ai đó cho tôi biết những gì tôi đang làm sai rồi? Cảm ơn!
Bạn đã cố gắng khắc phục điều này chưa? – gosukiwi
thử điều này: '_keyPress: function (self, textview, event)' – Gonzalo