首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R- winDialogString等价于tcltk ( in对话框?)

R- winDialogString等价于tcltk ( in对话框?)
EN

Stack Overflow用户
提问于 2012-03-14 07:28:12
回答 1查看 1.9K关注 0票数 2

与tcltk中的winDialogString等价于什么?

背景

我一直在R中使用readline来问用户一个问题并得到答复:

代码语言:javascript
复制
response <- readline("What's the air speed velocity of an unladen swallow? ")

今天我在我的Windows膝上,发现了winDialogString函数,它弹出一个小的模态消息框来获取输入:

代码语言:javascript
复制
response <- winDialogString("What's the air speed velocity of an unladen swallow? ",
                            default="african or european?")

我希望使用这个函数,但出于可移植性的考虑,我希望使用tcltk版本的winDialog,这样至少我的Linux盒也可以使用这个功能。

现在,如果我使用的是winDialog,那么等效的是tkmessageBox

代码语言:javascript
复制
# fairly equivalent, tkmessageBox is more portable.
winDialog(type='yesno','Do you like green eggs and ham?')
tkmessageBox(type='yesno',message='Do you like green eggs and ham?')

与tcltk中的winDialogString等价于什么?

我以为是tkdialog,所以我试了一试:

代码语言:javascript
复制
tkdialog("What's the air speed velocity of an unladen swallow?")

它给了我这个错误:

代码语言:javascript
复制
Error in structure(.External("dotTclObjv", objv, PACKAGE = "tcltk"), class = "tclObj") : 
  [tcl] wrong # args: should be "tk_dialog w title text bitmap default ...".

文档非常无助,?tkdialog指向没有特定文档的泛型tk帮助页面。我如何使用tkdialog (它甚至是我想要的?)

我推断,我可能不得不在所有被抱怨的论点中发表意见,所以我尝试了几种方法:

代码语言:javascript
复制
> tkdialog(title='',
           text="What's the air speed velocity of an unladen swallow?",
           bitmap='',default="african or european?")
Error in structure(.External("dotTclObjv", objv, PACKAGE = "tcltk"), class = "tclObj") : 
  [tcl] bad window path name "-title".

> tkdialog(tktoplevel(),title='',
           text="What's the air speed velocity of an unladen swallow?",
           bitmap='',default="african or european?")
Error in structure(.External("dotTclObjv", objv, PACKAGE = "tcltk"), class = "tclObj") : 
  [tcl] bitmap "-text" not defined.

我怎么才能让这个起作用?我宁愿呆在tcltk中,而不是使用类似于gWidgets的东西,因为tcltk在大多数R发行版中(如果R发行版是tcltk-incompatible,我会回到readline)。

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-14 20:53:25

与您所追求的最接近的是tkdialog,但它并不是真正为R设计的;您需要做一些工作(我完全承认不知道R,我在Tk方面)。我能做的就是解释这些参数需要是什么。

有底层tk_dialog命令在线的文档。特别是,你需要:

  1. 不用于其他任何事物的窗口名称。(这将成为用于实现对话框的窗口的名称。)
  2. 对话框的标题。
  3. 对话框正文的一些文本。
  4. 要使用的位图图片的字符串名称。除非你正在做一些非常低级的事情,否则你必须是这样的一个:errorgray75gray50gray25gray12hourglassinfoquestheadquestionwarning (或者在OSX上,你也可以看到这些额外的系统图片:documentstationeryeditionapplicationaccessoryd26,pfolder,trash,d29,d30,d31/code>,代码>代码,代码,代码,代码>代码>代码>caution)。
  5. 默认按钮的基于零的索引。如果-1,没有默认情况。
  6. (嗯,6,7,.)将文本放在按钮上,每个按钮一个字符串。

API并不完全适合于从R中使用--从Tcl也不是特别好,而且这个位图列表非常模糊(这是作为Tk的维护者之一说的)。如果您感兴趣,列表是记录在案,但我并不奇怪您不知道这是您想要的。我不会告诉您这一点,只是您使用的是tk_dialog (它本身确实过时了)。

你也可以自己实现它。做一个简单对话框的代码并不那么复杂(tk_dialog完全是在常规特性之上编写的)。我几乎不是一个足够好的R程序员,能够帮助你做,尽管。

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

https://stackoverflow.com/questions/9697568

复制
相关文章

相似问题

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