如何绑定ESC键以关闭gWidgets中的`gwindow()`?

时间:2014-07-12 08:54:28

标签: r window key-bindings gwidgets

考虑一下:

require(gWidgets2)
w <- gwindow("notebook example", visible=T)
nb <- gnotebook(container=w)
gbutton("Page one", label="tab 1", container=nb) ## note label argument
gbutton("Page two", label="tab 2", container=nb)

如何绑定给定的密钥(例如ESC)以关闭gWidgets中的gwindow(),即执行dispose(w)?换句话说,如何在gWidgets中分配键绑定?

2 个答案:

答案 0 :(得分:1)

使用RGtk2(可能还有其他人),可以使用addHandlerKeystroke方法来捕捉击键。您必须深入研究h对象以捕获ESC密钥。没有任何可移植代码,但Gtk文档应该能够提供帮助。

答案 1 :(得分:0)

根据接受的答案,我不得不:

addHandlerKeystroke(w, function(h, ...){
    browser()
})

然后调出w窗口并点击ESC,然后点击browser()终端:

print(h)

请注意:

Browse[1]> h$key
[1] "\033"

然后以下处理程序执行我想要的操作:

h_esc <- addHandlerKeystroke(w, function(h, ...){
    if(h$key=="\033") dispose(w)
})

根据how to program window to close with escape keyHow to define ESC char in git?ESC似乎经常被捕获为\033