如何摆脱tcltk2包的副作用?

时间:2014-12-31 04:35:46

标签: r

使用tcltk2库在R中创建GUI窗口后,当我恢复使用一个依赖于tcltk(没有2)的包生成的窗口时,我在Windows 7上收到此错误消息:

col2rgb(col)出错:无效的颜色名称'SystemButtonFace'

必须是tcltk2更改了在R中使用GUI的一些基础选项,因为在加载tcltk2之前没有错误消息。我正在使用以下版本的R:

R版本3.1.0(2014-04-10) - “春季舞蹈”

有没有办法处理这种副作用(即删除它)?

我试图简单地分离tcltk2包(这是tcltk包的补充),但是没有这样做。

我还尝试使用R颜色名称(如“红色”和“蓝色”)替换生成错误消息的GUI窗口中的颜色(而不是像#CCCFFF那样的颜色)。

非常感谢任何帮助。

谢谢,

伊莎贝拉

1 个答案:

答案 0 :(得分:1)

这不仅仅是一种烦恼 - 它会阻止R正确显示后续的GUI窗口。

我已经汇总了一些示例R代码。代码使用PBS模型包创建一个R GUI窗口(其中包依赖于tcltk但不依赖于tcltk2,两者都是R包)。这样创建的GUI窗口正确显示在R中。但是,在R中加载tcltk2软件包并尝试再次显示相同的窗口后,我收到错误消息:

col2rgb(col)出错:颜色名称无效' SystemButtonFace'

为了给你一些上下文,到目前为止我为我的项目编写的大多数R GUI窗口依赖于PBS模型并且工作正常。我只需要使用tcltk2为项目创建几个窗口,但由于上面提到的错误消息,这些窗口不能(至少目前)与大多数其他窗口集成。

以下是将重现错误消息的R代码:

## install & require PBSmodelling package 
## for creating R GUI windows
install.packages("PBSmodelling")
require(PBSmodelling)

## function to plot a sinusoid (to be called by GUI window) 
myPlot <- function() { 
        getWinVal(scope="L"); 
        x <- seq(0,500)*2*n*pi/500; 
        plot(x,sin(x),type="l"); 
} 

## create an R GUI window with PBSmodelling 
winStr=c( "window title=Simple", 
      "entry name=n value=5", 
      "button function=myPlot text=\"Plot sinusoid\"")

## display R GUI window created with PBSmodelling 
createWin(winStr,astext=TRUE)

## install & require tcltk2 package 
install.packages("tcltk2")
require(tcltk2)

## try to display R GUI window created with PBSmodelling, 
## this time after loading the tcltk2 package in R 
createWin(winStr,astext=TRUE)

## Error message:
## Error in col2rgb(col) : invalid color name 'SystemButtonFace'

如果您有任何解决此问题的建议,请告诉我们。

非常感谢,

伊莎贝拉