Tôi đang cố gắng sử dụng R trong một tập lệnh sẽ hoạt động như một công cụ đồ thị dòng lệnh đơn giản. I E. ống người dùng trong tệp csv và họ nhận được một âm mưu. Tôi có thể nhận được để R tốt và có được cốt truyện để hiển thị thông qua các machinations tập tin tạm thời, nhưng tôi đã đánh một rào cản. Tôi không thể tìm ra cách để R tiếp tục chạy cho đến khi người dùng đóng cửa sổ.R: xây dựng một công cụ vẽ sơ đồ dòng lệnh đơn giản/Chụp các sự kiện đóng cửa sổ
Nếu tôi vẽ và thoát, cốt truyện sẽ biến mất ngay lập tức. Nếu tôi vẽ và sử dụng một số loại vòng lặp vô hạn, người dùng không thể đóng cốt truyện; anh ta phải thoát ra bằng cách sử dụng một ngắt mà tôi không thích. Tôi thấy có một hàm getGraphicsEvent, nhưng nó cho rằng thiết bị không được hỗ trợ (X11). Dù sao, nó không xuất hiện để thực sự hỗ trợ một sự kiện onClose, chỉ onMouseDown.
Bất kỳ ý tưởng nào về cách giải quyết vấn đề này?
chỉnh sửa: Cảm ơn Dirk đã được tư vấn để kiểm tra giao diện tk. Đây là mã thử nghiệm của tôi mà làm việc:
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)