Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ctrl+;点击?_R_Button_Handler_Gwidgets - Fatal编程技术网

如何在ctrl+;点击?

如何在ctrl+;点击?,r,button,handler,gwidgets,R,Button,Handler,Gwidgets,如何在按住ctrl键的同时单击gWidgets2,激活gbutton()处理程序 考虑以下代码: w <- gwindow("Buttons") g <- ggroup(cont=w, horizontal=FALSE) b2 <- gbutton("ouvrir", cont=g) b4 <- gbutton("click me", cont=g) h4 <- function(h,...) { if(svalue(b2) == "open")

如何在按住ctrl键的同时单击
gWidgets2
,激活
gbutton()
处理程序

考虑以下代码:

w <- gwindow("Buttons")
g <- ggroup(cont=w, horizontal=FALSE)

b2 <- gbutton("ouvrir", cont=g)
b4 <- gbutton("click me", cont=g)
h4 <- function(h,...) {
    if(svalue(b2) == "open")
        svalue(b2) <- "ouvrir"
    else
        svalue(b2) <- "open"
}
addHandlerChanged(b4, h4)

h4bis <- function(h,...) {print("hello world on ctrl+click")}

gWidgets2RGtk2中的
w事件处理程序的
..
部分将值传递给Gtk处理程序。在这种情况下,没有返回任何内容。您需要绑定到与单击的
不同的事件。很可能
按钮按下事件
会起作用,但随后您放弃通过键盘激活按钮。在这种情况下,我不介意放弃通过键盘激活按钮。那么,
按钮按下事件
方法会是什么样子呢?我还没有测试过,但是
btn$add\u handler\u button\u release(函数(h,w,e,…){}
应该传入
e
变量a
GdkEventButton
(),可以查询该变量来检查诸如ctrl('GdkModifierType')之类的修饰符。