일부 R 스크립트의 실행 상태를 확인하기 위해 진행률 표시 줄을 만들었습니다. 그리고 기본 'Tk'아이콘 대신 막대에 맞춤 아이콘을 삽입하고 싶습니다. 나는 질환자 파일과 다음 명령R : Mac 및 Linux에서 Tcltk 창의 아이콘 변경
tcl('wm', 'iconbitmap', .win, 'Icon.ico')
를 사용하여 Windows에서이 작업을 할 수 있어요하지만 맥 OSX와 리눅스에서 같은 작업을 수행하는 방법에 대한 손실입니다. 분명히 .ico 형식은 작동하지 않지만 .png, .jpg, .bmp, .xbm 또는 .xpm도 마찬가지입니다. 내가 어떻게 진행할 수 있을지에 대한 제안? 샘플 이미지 및 진행 바코드 아래 첨부 : -
Sample image http://tinypic.com/r/jt8efn/6-http://tinypic.com/r/jt8efn/6 당신이 wm iconphoto
와 아이콘을 설정 리눅스
tkProgressBar2 <- function (title = 'Test progress bar', label = '', min = 0, max = 100, initial = 0, width = 300, userfn='helvetica', backg='white') {
useText <- FALSE
have_ttk <- as.character(tcl('info', 'tclversion')) >= '8.5'
if (!have_ttk && as.character(tclRequire('PBar')) == 'FALSE') useText <- TRUE
.win <<- tktoplevel(background=backg)
tkfocus()
tcl('wm', 'geometry', .win, '500x100+450+350')
tcl('wm', 'iconbitmap', .win, '@Icon.xbm')
.val <- initial
.killed <- FALSE
tkwm.geometry(.win, sprintf('%dx80', width + 40))
tkwm.title(.win, title)
fn <- tkfont.create(family = userfn, size = 12)
if (useText) {
.lab <- tklabel(.win, text = label, font = fn, padx = 0, background=backg)
tkpack(.lab, side = 'left')
fn2 <- tkfont.create(family = userfn, size = 16)
.vlab <- tklabel(.win, text = '0%', font = fn2, padx = 20, background=backg)
tkpack(.vlab, side = 'right')
up <- function(value) {
if (!is.finite(value) || value < min || value > max) return()
.val <<- value
tkconfigure(.vlab, text = sprintf('%d%%', round(100 * (value - min)/(max - min))))
}
} else {
.lab <- tklabel(.win, text = label, font = fn, pady = 0, background=backg)
.tkval <- tclVar(0)
tkpack(.lab, side = 'top')
tkpack(tklabel(.win, text = '', font = fn, background=backg), side = 'bottom')
pBar <- if (have_ttk)
ttkprogressbar(.win, length = width, variable = .tkval) else
tkwidget(.win, 'ProgressBar', width = width, variable = .tkval)
tkpack(pBar, side = 'bottom')
up <- function(value) {
if (!is.finite(value) || value < min || value > max) return()
.val <<- value
tclvalue(.tkval) <<- 100 * (value - min)/(max - min)
}
}
getVal <- function() .val
kill <- function() if (!.killed) {
tkdestroy(.win)
.killed <<- TRUE
}
title <- function(title) tkwm.title(.win, title)
lab <- function(label) tkconfigure(.lab, text = label)
tkbind(.win, '<Destroy>', function() stop())
up(initial)
structure(list(getVal = getVal, up = up, title = title, label = lab, kill = kill), class = 'tkProgressBar')
}
pb <- tkProgressBar2(title='Performing k-Means clustering', label='Some information in %', min=0, max=100, initial=0, width=400, userfn='verdana', backg='white')
답변 해 주셔서 감사합니다. Donal. Linux (CentOS 5.4)에서 작동했습니다. 그러나 Mac OSX 10.5 (Leopard)에서는 X Window System 아이콘이 응용 프로그램 이름의 왼쪽에 나타납니다. 거기에 사용자 정의 아이콘을 추가하는 방법이 있습니까? –
OSX에서 X11 빌드를 사용하고 있습니까? 드문 일입니다. Aqua-native 빌드를 사용하면'wm attributes theWin -titlepath'를 통해 일을 제어하지만, 실제로 X11에 대해서는 모른다. 나는 당신이 아이콘 사진을 설정하려고 시도 할 수 있다고 생각합니다; 누가 알 겠어? –