2011-07-06 33 views
7

Bạn có thể đặt tiêu đề của một cửa sổ thiết bị âm mưu vớiLàm thế nào để bạn lấy tiêu đề của cửa sổ thiết bị lô?

windows(title = "The title") 
#or equivalently 
x11(title = "The title") 

Làm thế nào bạn lấy danh hiệu từ một cửa sổ thiết bị âm mưu?

names(dev.cur()), attributes(dev.cur()), str(dev.cur())unclass(dev.cur()) không tiết lộ bất kỳ điều gì hữu ích.

+0

Tôi không cố gắng để được thông minh hoặc bất cứ điều gì, nhưng không thể bạn chỉ 'plotname = "Tiêu đề"; ' ' windows (title = plotname); ' ' plotname' – Seth

Trả lời

2

Không thể thực hiện được các thuộc tính thiết bị gây ra thuộc tính cửa sổ.

Dưới cửa sổ bạn có thể thử gây rối với names(getWindowsHandles()) mà mang lại cho tôi:

> names(getWindowsHandles()) 
[1] "R Console" 
[2] "The title (ACTIVE)" 
[3] "R Information" 

Ví dụ: cho thiết bị đang hoạt động grep("\\(ACTIVE\\)$", names(getWindowsHandles()), value=TRUE) trả về tiêu đề.


Đó là dễ dàng hơn tôi nghĩ:

getTitle <- function(dev=dev.cur()) { 
    all_pointers <- getWindowsHandles(which="R", minimized=TRUE) 
    all_pointers <- sapply(all_pointers, deparse) 
    to_find <- deparse(getWindowsHandle(dev)) 
    if (to_find=="NULL") { 
     warning("Device not found") 
     NULL 
    } else { 
     names(all_pointers)[to_find==all_pointers] 
    } 
} 

Bây giờ một số xét nghiệm:

> getTitle() 
Warning in getTitle() : Device not found 
NULL 
> windows(title="Test window one") 
> getTitle() 
[1] "Test window one (ACTIVE)" 
> getTitle(3) 
Warning in getTitle(3) : Device not found 
NULL 
> windows(title="Test window two") 
> windows(title="Test window three") 
> sapply(dev.list(), getTitle) 
        windows      windows      windows 
"Test window one (inactive)" "Test window two (inactive)" "Test window three (ACTIVE)" 
+0

Bravo! Đây chỉ là những gì tôi muốn. –

0

Bạn có thể làm điều đó, nhưng cách tiếp cận đó sẽ trở nên cồng kềnh khi giao dịch với nhiều ô. Tôi nghi ngờ Richie quan tâm hơn đến cách R lưu trữ thông tin tiêu đề khi bạn gửi cho thiết bị đồ họa — như là I.

Các vấn đề liên quan