Что эквивалентно winDialogString в tcltk?
Фон
Я использовал 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?')
Что эквивалентно winDialogString в tcltk?
Я думал, что это было 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
) .
веселит.