首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtable (来自R包gWidgets2)返回前面的选择

gtable (来自R包gWidgets2)返回前面的选择
EN

Stack Overflow用户
提问于 2017-07-19 06:57:40
回答 1查看 146关注 0票数 0

R中的gWidgets2包中的gtable小部件在单击新值时返回先前选定的值。如果使用键盘箭头选择一个值,然后输入以激活当前选择,则返回。这对我来说是出乎意料的行为。如果这是它应该通过设计工作的方式,那么在这两种情况下,我如何才能得到当前的选择?

编辑:--它看起来像预期的那样使用gWidgets工作,所以它可能是gWidgets2中的一个bug。启动一个新的R会话,并在下面的示例中更改为gWidgets2 -> gWidgets和gvbox -> ggroup。

代码语言:javascript
复制
require(gWidgets2)

# Select by clicking (Clicked) or hit Enter (Changed)
# Move using mouse or arrow keys.

# Create the example (adopted from the gtable example)
w <- gwindow("gtable example", visible=FALSE)
g <- gvbox(cont=w)
tbl <- gtable(mtcars, cont=g, expand=TRUE, fill=TRUE)

addHandlerClicked(tbl, handler = function(h, ...) {

  print("Clicked returns the previously selected value.")

  print(svalue(tbl))

} )

addHandlerChanged(tbl, handler = function(h, ...) {

  print("Changed returns the currently selected value.")

  print(svalue(tbl))

} )

visible(w) <- TRUE

R版本3.4.1 (2017-06-30),平台:x86_64-W64-mingw32 32/ x64 (64位),运行于: Windows 7 x64 (build 7601) Service Pack 1包:gWidgets2 2_1.0-7,gWidgets2RGtk 2_1.0-6,RGtk2_2.20.33

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-24 05:22:13

@jverzani在GitHub https://github.com/jverzani/gWidgets2/issues/94#issuecomment-316739581上的答复

对不起,我这里没有很好的解决办法。我以为我知道,但我想不出来。问题是在更新小部件之前调用gWidgets2观察者。我以为用不同的方式安排处理程序会有效,但是. 解决办法是不以这种方式连接,而是使用addHandlerSelectionChanged --这提供了一次单击和键盘响应,但对双击没有很好的效果。或者,双击应该“激活”发起回调的单元格,因此不分配给单击处理程序是可能的,只分配给更改处理程序就可以进行双击和键盘选择,而不是单次单击,这只会设置所选内容,但不会启动回调。

在我的申请中,它似乎像预期的那样起作用。我只在一个地方使用addHandlerChanged,在另一个地方只使用addHandlerSelectionChanged

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45183050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档