Материал, который случается только иногда, трудно воспроизвести, и часто из-за ошибок, и его трудно выяснить без полной спецификации вашей машины. Тем не менее, я могу получить аналогичное поведение и исправить его:
> library(tcltk)
Loading Tcl/Tk interface ... done
> menu(letters[1:5],graphics=TRUE)
^C
Нажав Control-C в этот момент, я получаю приглашение R и диалоговое окно без ответа, с которым у меня нет ручки. Использование элементов управления оконного менеджера ничего не делает, изменение размера не обновляет окно. Итак ...
> tclServiceMode(TRUE)
[1] FALSE
тогда он просыпается. Затем я могу либо закрыть диалоговое окно обычным способом, либо сделать:
> tkdestroy(".1")
Error: $ operator is invalid for atomic vectors
, который избавляется от него с ошибкой, которую я не понимаю. «.1» - это путь к окну, который совпадает с заголовком окна по умолчанию, но не в том случае, если вы установили имя в меню. В этом случае ... Хм, вероятно, есть способ найти его по названию, но в любом случае, если вы установили режим обслуживания на ИСТИНА, вы можете вернуться обратно к чистоте рабочего стола.