Как вы получаете заголовок окна устройства печати? - PullRequest
7 голосов
/ 06 июля 2011

Вы можете установить заголовок окна устройства печати с помощью

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

Как извлечь заголовок из окна устройства печати?

names(dev.cur()), attributes(dev.cur()), str(dev.cur()) и unclass(dev.cur()) не раскрывайте ничего полезного.

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Это не должно быть возможно из свойств устройства, потому что это свойство окна.

Под окнами вы можете попробовать связываться с names(getWindowsHandles()), что дает мне:

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

например. для активного устройства grep("\\(ACTIVE\\)$", names(getWindowsHandles()), value=TRUE) вернуть заголовок.


Это было проще, чем я думал:

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]
    }
}

Теперь некоторые тесты:

> 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 голосов
/ 07 июля 2011

Вы могли бы сделать это, но такой подход станет громоздким при работе с несколькими графиками.Я подозреваю, что Ричи больше интересует, как / где R хранит информацию о заголовке, как только вы отправляете ее на графическое устройство - как и я.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...