问题标签 [gwidgets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
212 浏览

r - 如何在 R 中使用 gfile 指定文件路径后立即更新 gedit 框,使用 gWidgetsRGtk2

我正在尝试为gWidgetsRGtk2我用 R 编写的程序创建一个 GUI。我的 GUI 有一个gedit()文本框,用户可以在其中键入要放入程序中的输入数据文件的文件路径。它还有一个“浏览”按钮,单击该按钮会打开一个gfile()框,以便他们可以浏览所需的文件。在用户使用“浏览”按钮选择他们的文件后,我遇到的问题是更新我的gedit()框中的值。下面的代码可能会使这一点更清楚:

到目前为止,我已经尝试使用,如上面的代码所示,因此只有当您将鼠标移到框本身上时才会更新框中addhandlermousemotion的文本。gedit()但是,如果框中的文本立即更新,我会更喜欢它。

我也试过用addhandleridle(), 间隔 1 秒,这样框内的文字就会每 1 秒自动更新一次。这行得通。但是,无法正确输入该框,因为在保存正在输入的新“sfilepath”之前,文本框已使用旧的“sfilepath”更新。

我是 GUI 制作的初学者(我已经编写了一个工作程序,但是一旦我离开它就需要其他人使用,所以上周五决定我应该弄清楚如何将它制作成 GUI)。因此,任何人都可以提供的任何帮助将不胜感激。

0 投票
1 回答
422 浏览

r - 如何在 R 中使用 gWidgets 更改 gwindow() 的 WM 图标?

我想更改窗口管理器图标(在我的左上角gwindow()),使用 R 中的 gWidgets。我想添加我自己的图片,而不是使用角落的 R 标志。我已将图片加载到 R 中,只需调用gimage("imagename.jpg"). 我可以通过调用 来设法在窗口中打开此图像gimage("imagename.jpg", cont=gwindow(cont=T)),但不能作为图标。

我觉得这应该是一件非常简单的事情。我已经用谷歌搜索了如何做到这一点,但找不到答案。我发现,使用 RGtk2,您只需icon=imagename在创建窗口时添加参数。

我也通过调用 gWidgets 尝试了这个gwindow(icon=gimage("imagename.jpg"), cont=T),但是这与只调用 gwindow 没有额外的参数没有什么不同。

这似乎应该很简单,但我无法在任何地方找到答案。任何帮助将不胜感激。

谢谢。

0 投票
2 回答
1476 浏览

r - Windows 上 R 中的 gwidgets

在开发用于绘制数据和模型结果的 gWidgets 界面时,我创建了一个绘图页面par(mfrow=c(4,1))并将 4 个绘图堆叠起来。

第一个图(顶部的简单 y 与 x)工作正常,但循环中剩余的 3 个图创建轴但不绘制数据。为了测试代码,我尝试在循环遍历绘图之前打开一个新的绘图窗口,并且一切正常。

有什么gwdigets与之交互的东西plot(...)有用吗?

编辑 一个可重现的例子:

不起作用:

应该看起来像这样(正常的 R 图形窗口:

在此处输入图像描述

不像这样

在此处输入图像描述

0 投票
0 回答
106 浏览

r - 从 gtable 容器中提取/替换对象

我已经将一个渐变对象放入一个 gtable 单元格中。基于来自另一个控件的选择,我想修改渐变对象的性质并将其替换在同一个单元格中。

tblL[2,1] 的内容将根据从单独控件中选择的结果使用不同的渐变对象进行修改。下一步是什么?

0 投票
1 回答
190 浏览

r - gwidgets glabel 在 R 中使用什么标记?

在 gWidget 的 glabel 对象中,有一个选项可以在标签的文本中使用标记。我已将其激活为 true 并尝试使用一些标记约定,例如粗体 、 、 ''' text ''' Markdown 约定等。但我尝试过的没有一个有效。谷歌搜索“gwidgets 中的哪些标记代码”对我也没有帮助。我想将我的一些标签文本格式化为粗体并集中其他部分。

0 投票
0 回答
1493 浏览

r - 使用 gWidgets 在 R 中加载和保存变量

在过去的几个月里,我一直在 RI 中构建一个模拟,希望能够打包。它由两个可用函数和许多内部函数组成,两个可用函数之一在循环时调用这些函数来执行模拟阶段。

一个简单的概念示例是:

到目前为止,使用我的包,在使用 library() 加载和附加包后使用它:

没有什么需要从模拟函数返回,因为结果和数据转储被保存为一个带有save()命令的对象,然后可以读取这些对象。

现在我希望它有一个可以与命令行结合使用的简单 GUI——想想 Rcmdr 但更简单,让我从未接触过 R 的同事使用它。gui 需要能够编辑设置 - 就像上面的修复命令一样,将设置对象保存到文件,并从对象文件中读取设置。我用 gWidgets 构建了这个:

请注意,settings之前函数的工作现在在这个 gui 函数的第一行完成。我将它添加到与上述三个函数相同的 R 文件中,gui作为导出添加到命名空间,将 gWidgets 和 gWidgetstcltk 设置为导入,然后重新构建,然后library()打包并执行gui().

界面出现。但是我有一些问题: gui 显示正常,但是如果我单击 button1(“编辑设置”)通过修复(输入)编辑设置,更改值,关闭编辑器并再次单击按钮以查看更改是否已经持久化并存储在 INPUT 中,但它们没有。读取对象也是如此,它不会覆盖函数 gui() 第一行默认生成的 INPUT 对象。

我认为这与功能环境有关,但我不太确定。在我的包的无 gui 版本中,用户生成包含设置的对象,该对象位于工作区中,并将其作为参数提供给模拟函数。但是,由于使用 gui 版本,所有内容都在函数 gui() 中运行,并且 gWidgets 处理程序使用函数(h,...) 我不禁觉得环境是这里的问题。奇怪的是,当单击按钮 1 时,它会从 gui() 环境中找到 INPUT,但不会在此处进行更改。

有人可以帮忙解决这个问题并建议我需要做什么吗?

很抱歉问了一个很长的问题,但我试图解释清楚。代码是可重现的,这也是问题所在,只需拥有 library(gWidgets, gWidgetstcltk) 并复制和粘贴我在此处提供的代码,以定义函数然后运行gui()​​. 然后单击“编辑设置”按钮,更改单元格,退出,然后再次单击按钮以查看更改是否仍然存在(它们没有)。我提供的抽象示例忠实地再现了我在使用适当的模拟功能时遇到的相同问题,所以如果我不能让它工作,我就不会让真实的东西工作。

谢谢,

本·W。

UEA

塞恩斯伯里实验室。

[编辑] 这是使用 .GlobalEnv 的修复/解决方法:

0 投票
1 回答
351 浏览

r - 如何为 gcheckbox 对象设置字体

gWidgets 中的font方法似乎不适用于gcheckbox(使用 RGtk2 工具包)。在以下代码中,样式正确应用于glabel对象,但对于gcheckbox.

有没有办法使这项工作?

0 投票
2 回答
924 浏览

r - R gWidgets 删除参数和传递参数

我是 R 世界的新手,在使用 gWidgets 时遇到了一些困难,我希望有人可以帮助我。首先,我的 R 版本是 2.15.2。,我使用的是 Windows 7 32 位。

我想创建一个带有输入/输出和选择(是,否)的 GUI,所以如果用户选择(使用渐变)“是”,将显示一组额外的参数,如果“否”,那么它应该消失(这些参数),或灰显。最后,如果用户单击确定按钮,那么它将传递一些参数,这些参数将用于(稍后)调用另一个函数。以下是我的问题:

  1. 您是否知道当用户选择“否”时如何删除参数,现在,如果我单击“否”,它会打印我想要的内容,但是当我再次单击“是”时,它会显示另外三个参数。
  2. 你知道当用户单击“确定”时我如何传递参数吗,这是为了稍后单击确定时,它将调用(或源)不同的r代码中的另一个函数

非常感谢您的所有帮助

塞萨尔

PS下面是我的代码:

0 投票
1 回答
304 浏览

r - 保存和加载动态 gWidgets GUI

我有一个使用 R 中的 gWidgets 包创建的动态 GUI(如果重要的话,guiToolkit="RGtk2")。动态是指在使用 GUI 时创建和删除表单元素。我想知道是否有一种简单的方法可以使用所有当前表单元素和选定/键入的值保存当前 GUI,然后稍后加载它。保存和加载工作区似乎不适用于此类事情,例如:

工作正常,您可以复制一个对象并继续在其他变量名下工作。但是,当您保存工作区并加载它时,在尝试执行最后 2 行时会收到错误“断言 `GTK_IS_WIDGET (widget)' failed”。因此, load() 函数不能正确地重新创建对象。

0 投票
3 回答
4124 浏览

r - 如何从 gWidgets 和处理程序返回值?

我正在尝试为 R 包开发 GUI(使用 gWidgets)。我的计划是构建一个保存数据的主窗口,并使用按钮为每个函数调用小型 gui 包装器。不幸的是,我陷入了一个基本(?)问题——我不知道如何传输数据。

问题:

  • 如何在单独的窗口之间正确发送数据?
  • 如何从另一个窗口的处理程序中发送数据?

我的问题类似于: Loading and save variables in R with gWidgets,但从我读过的内容来看,不推荐使用 .GlobalEnv 。

我还看到有人使用 <<- 运算符:http: //www.mail-archive.com/r-sig-gui@r-project.org/msg00053.html,但我无法正确复制它(并且我认为它不适用于我的示例)。

下面是一个简单的示例,如果按下按钮,我尝试将文本发送到另一个窗口并再次返回。我已经尝试在处理程序中使用 return ,但这不起作用(也不确定是否允许)。在处理程序/内部函数可以对数据进行操作之前,子窗口会在函数结束时立即返回其值。我不知道如何从处理程序到达主窗口。

更新: 这是我选择的解决方案(如 jverzani 建议的那样),使用上面的示例进行说明。我希望我正确理解了建议的解决方案,并且我已经以一种“不错”的方式实施了它,在 CRAN 中得到了理想的接受。

总而言之,我在主窗口环境中创建了一个新环境。我编辑了子窗口以获取通话中的环境。按下子窗口中的按钮assign将编辑的文本传递给传递的环境。当子窗口关闭并且主窗口成为焦点时,可以使用get.