Что эквивалентно 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
).
ваше здоровье.
tkdialog
. (Это впечатляющий набор функций, спасибо, что поделились! Однажды я хотел бы поделиться своим личным набором служебных функций, которые я написал для R) - person mathematical.coffee   schedule 14.03.2012