gpt4 book ai didi

R - tcltk 中的 winDialogString 等价物(tkdialog?)

转载 作者:行者123 更新时间:2023-12-04 05:54:21 30 4
gpt4 key购买 nike

tcltk 中的 winDialogString 相当于什么?

背景
我一直在用readline在 R 中,为了向用户提出问题并得到答复:

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 -不兼容,我将回退到 readline )。
欢呼。

最佳答案

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

有底层文档tk_dialog命令 online .特别是,您需要:

  • 不用于其他任何内容的窗口名称。 (这将成为用于实现对话框的窗口的名称。)
  • 对话框的标题。
  • 对话框正文的一些文本。
  • 要使用的位图图片的字符串名称。除非你正在做一些非常粗糙和低级的事情,否则必须是以下之一:error , gray75 , gray50 , gray25 , gray12 , hourglass , info , questhead , question , warning (或在 OSX 上,您还可以获得这些奖励系统图片:document ,stationery ,edition ,application ,accessory ,folder ,pfolder ,trash ,floppy ,ramdisk ,cdrom ,preferences ,querydoc ,stop ,note ,caution )。
  • 默认按钮的从零开始的索引。如果 -1,则没有默认值。
  • (嗯,6、7,...)放在按钮上的文本,每个按钮一个字符串。

  • 这个 API 并不是真的设计得很好,可以从 R 中使用。Tcl 也不是特别好,位图列表真的很模糊(这是作为 Tk 的维护者之一说的)。如果您有兴趣,列表是 documented但我并不惊讶你不知道那是你想要的。除了您使用的是 tk_dialog,我不会告诉您有关它的信息。 (本身真的已经过时了)。

    你也可以自己实现它。执行简单对话框的代码并不复杂( tk_dialog 纯粹是基于常规功能编写的脚本)。不过,我还不是一个足够好的 R 程序员,无法帮助您做到这一点。

    关于R - tcltk 中的 winDialogString 等价物(tkdialog?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697568/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com