运行gWidgets2Qt演示时出错

时间:2013-05-22 22:08:28

标签: r gwidgets

运行gWidgets2Qt包的演示时出现此错误:

> demo(gWidgets2Qt)


    demo(gWidgets2Qt)
    ---- ~~~~~~~~~~~

Type  <Return>   to start : 

> ## run examples
> require(gWidgets2)

> options(guiToolkit="Qt")

> ## run examples
> source(system.file("examples", "run_examples.R", package="gWidgets2"))
Error in envRefSetField(x, what, refObjectClass(x), selfEnv, value) : 
  ‘.visible’ is not a field in class “GWindow”

请同时查看此question我刚刚要求提供会话信息以及我在cranvas包中遇到的类似错误,我认为这可能与上述内容有关。非常感谢。

编辑:

按照@jverzani的提示,我尝试了一个简单的代码。然后我做了一些测试:

分离包时我得到了这个

detach("package:gWidgets2Qt", unload=TRUE)
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In FUN(X[[2L]], ...) :
  Created a package name, ‘2013-05-23 07:40:37’, when none found

尝试重新加载并运行演示但仍然无法正常工作 我重新启动ubuntu并再次尝试

library(gWidgets2Qt)
demo(gWidgets2Qt)

它运行正常,我只得到ex-graphics.R示例的错误 在第一次尝试时无法运行此错误:

Error in qsceneDevice(width, height, pointsize, family, the_scene) : 
  unused argument (the_scene)
In addition: Warning message:
In .removePreviousCoerce(class1, class2, where, prevIs) :
  methods currently exist for coercing from “AlternativeSingleEnum” to “character”; they will be replaced.
Error in qinvoke(<environment>, "initScene", ...) : 
  Implementation failed for method 'R::gWidgets2Qt::QtDevice::initScene'

这一个在下一个attmpts:

Error in qsceneDevice(width, height, pointsize, family, the_scene) : 
  unused argument (the_scene)
Error in qinvoke(<environment>, "initScene", ...) : 
  Implementation failed for method 'R::gWidgets2Qt::QtDevice::initScene'

但所有其他例子都有效。但是,只要我加载了cranvas,就用

> library(cranvas)

Attaching package: ‘cranvas’

The following object is masked from ‘package:gWidgets2’:

    visible, visible<-

demo(gWidgets2Qt)再次失败并分离cranvas

> detach("package:cranvas", unload=TRUE)
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In FUN(X[[2L]], ...) :
  Created a package name, ‘2013-05-23 08:37:43’, when none found

demo(gWidgets2Qt)再次运行。这种不兼容性已经见过了吗?这是否取决于invisible掩盖的gWidgets2

1 个答案:

答案 0 :(得分:1)

我不确定为什么这不起作用。我刚刚在linux设置上安装了整个东西(qtbase,qtutils,gWidgets2,gWidget2Qt)并开始演示。涉及图形的那些并不真正起作用,但基本的演示确实有效。要查看一切是否正常,请尝试使用简单的方法:

w <- gwindow("something simple")
b <- gbutton("click me", container=w)
addHandlerChanged(b, handler=function(h,...) {
  gmessage("Hello world", parent=w)
})

如果这不起作用则存在安装问题