首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用gWidgets选项卡笔记本切换活动设备?

如何用gWidgets选项卡笔记本切换活动设备?
EN

Stack Overflow用户
提问于 2014-07-27 03:18:15
回答 1查看 164关注 0票数 2

我用gWidgets创建了一个双标签图形用户界面。图嵌入在这两个选项卡中的每个选项卡中。问题是,这两个图都被发送到表2。我如何切换或选择活动设备?gwidgets包的微缩表示addHandlerChanged或gGraphics记事本。在使用gGraphics记事本时,会生成一些不需要的按钮。因此,我想知道如何使用addHandlerChanged或其他方法来实现它。附了一个小例子。谢谢。

代码语言:javascript
复制
# library
library(gWidgets); library(cairoDevice)
options(guiToolkit = "RGtk2")

# first tab -----------------------------------------------------------
r.main <- gwindow(title = "Correlation", visible = TRUE)
r.nb <- gnotebook(container = r.main)
rSta <- ggroup(container = r.nb, horizontal = TRUE, label = "Static")
rDyn <- ggroup(container = r.nb, horizontal = FALSE, label = "Dynamic")

ggraphics(container = rSta)
obj.ptNum <- gradio(items = c("100", "1,000", "5,000"), 
  selected = 2, horizontal = FALSE, container = rSta, 
  handler = function(h, ...) {plot(1:10, main = "Static graph")})

# second tab  -----------------------------------------------
obj.plotNum <- gradio(items = c("10", "50", "300", "400"), 
  selected = 2, horizontal = TRUE, container = rDyn, 
  handler = function(h, ...) {
    plot(30:35, col = 'red', main = "Dynamic graph")})
ggraphics(container = rDyn) 

编辑:我找到了一个解决方案。注意,问题不在于选择选项卡,而在于如何选择当前活动的嵌入式设备。为便于以后参考,下面将复制我的代码。我想不出的一个小问题是:当应用程序启动时,如何不单击就显示图形?谢谢大家。

代码语言:javascript
复制
library(gWidgets); library(cairoDevice); library(gWidgetsRGtk2)
library(RGtk2)
options(guiToolkit = "RGtk2")

# first tab -----------------------------------------------------------
r.main <- gwindow(title = "Correlation", visible = TRUE)
r.nb <- gnotebook(container = r.main)
rSta <- ggroup(container = r.nb, horizontal = TRUE, label = "Static")

ggraphics(container = rSta)
staPlot <- function(h, ...) {
  sel <- ifelse(test = length(dev.list()) >= 2, yes = 2, no = 1) 
  dev.set(which = sel)
  plot(1:as.numeric(svalue(obj.ptNum)), main = "Static graph")}
obj.ptNum <- gradio(items = c("100", "150", "200"), 
  selected = 2, horizontal = FALSE, container = rSta, 
  handler = staPlot)

# second tab  -----------------------------------------------
rDyn <- ggroup(container = r.nb, horizontal = FALSE, label = "Dynamic")
dynPlot <- function(h, ...) {
  sel <- ifelse(test = length(dev.list()) >= 2, yes = 3, no = 1) 
  dev.set(which = sel)
  plot(1:as.numeric(svalue(obj.plotNum)), col = 'red', 
     main = "Dynamic graph")}
obj.plotNum <- gradio(items = c("10", "50", "300", "400"), 
  selected = 2, horizontal = TRUE, container = rDyn, 
  handler = dynPlot)
ggraphics(container = rDyn)
svalue(r.nb) <- 1
EN

回答 1

Stack Overflow用户

发布于 2015-05-20 09:39:19

使用dev.set是不好的。如果要在图形设备中创建绘图,则可以使用以下代码。

图<- ggraphics()

可见(图) <- TRUE

方块(.)

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

https://stackoverflow.com/questions/24977619

复制
相关文章

相似问题

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