R: Erstellen eines einfachen Befehlszeilen-Plott-Tools / Fensterschließereignisse erfassen

Ich versuche, R in einem Skript zu verwenden, das als einfaches Befehlszeilen-Plot-Tool fungiert. Das heißt Benutzer-Pipes in einer CSV-Datei und sie erhalten eine Zeichnung. Ich kann R fine erreichen und den Plot durch verschiedene temporäre Dateioperationen anzeigen lassen, aber ich habe eine Straßensperre getroffen. Ich kann nicht herausfinden, wie ich R zum Laufen bringen kann, bis die Benutzer das Fenster schließen.

Wenn ich plotte und verlasse, verschwindet der Plot sofort. Wenn ich eine Endlosschleife zeichne und verwende, kann der Benutzer die Zeichnung nicht schließen. Er muss mit einem Interrupt beenden, den ich nicht mag. Ich sehe, dass es eine getGraphicsEvent-Funktion gibt, die jedoch behauptet, dass das Gerät nicht unterstützt wird (X11). Wie auch immer, es scheint nicht wirklich ein onClose-Ereignis zu unterstützen, nur onMouseDown.

Haben Sie noch Ideen, wie Sie das lösen können?

edit: Danke an Dirk für den Rat, das tk-Interface zu überprüfen. Hier ist mein Testcode, der funktioniert:

require(tcltk)
library(tkrplot)

## function to display plot, called by tkrplot and embedded in a window
plotIt<-function(){ plot(x=1:10, y=1:10) }
## create top level window
tt<-tktoplevel()
## variable to wait on like a condition variable, to be set by event handler
done <- tclVar(0)
## bind to the window destroy event, set done variable when destroyed
tkbind(tt,"<Destroy>",function() tclvalue(done) <- 1)
## Have tkrplot embed the plot window, then realize it with tkgrid
tkgrid(tkrplot(tt,plotIt))
## wait until done is true
tkwait.variable(done)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage