与tcltk中的winDialogString等价于什么?
背景
我一直在R中使用readline来问用户一个问题并得到答复:
response <- readline("What's the air speed velocity of an unladen swallow? ")今天我在我的Windows膝上,发现了winDialogString函数,它弹出一个小的模态消息框来获取输入:
response <- winDialogString("What's the air speed velocity of an unladen swallow? ",
default="african or european?")我希望使用这个函数,但出于可移植性的考虑,我希望使用tcltk版本的winDialog,这样至少我的Linux盒也可以使用这个功能。
现在,如果我使用的是winDialog,那么等效的是tkmessageBox
# 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,所以我试了一试:
tkdialog("What's the air speed velocity of an unladen swallow?")它给了我这个错误:
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 (它甚至是我想要的?)
我推断,我可能不得不在所有被抱怨的论点中发表意见,所以我尝试了几种方法:
> 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)。
干杯。
发布于 2012-03-14 20:53:25
与您所追求的最接近的是tkdialog,但它并不是真正为R设计的;您需要做一些工作(我完全承认不知道R,我在Tk方面)。我能做的就是解释这些参数需要是什么。
有底层tk_dialog命令在线的文档。特别是,你需要:
error,gray75,gray50,gray25,gray12,hourglass,info,questhead,question,warning (或者在OSX上,你也可以看到这些额外的系统图片:document,stationery,edition,application,accessory,d26,pfolder,trash,d29,d30,d31/code>,代码>代码,代码,代码,代码>代码>代码>caution)。默认按钮的基于零的索引。如果-1,没有默认情况。(嗯,6,7,.)将文本放在按钮上,每个按钮一个字符串。API并不完全适合于从R中使用--从Tcl也不是特别好,而且这个位图列表非常模糊(这是作为Tk的维护者之一说的)。如果您感兴趣,列表是记录在案,但我并不奇怪您不知道这是您想要的。我不会告诉您这一点,只是您使用的是tk_dialog (它本身确实过时了)。
你也可以自己实现它。做一个简单对话框的代码并不那么复杂(tk_dialog完全是在常规特性之上编写的)。我几乎不是一个足够好的R程序员,能够帮助你做,尽管。
https://stackoverflow.com/questions/9697568
复制相似问题