2012-11-01 137 views
0

我希望在我的tcltk窗口中插入一個'加載'GIF圖像,但是無法讓我的頭部繞過它。以下是一個可重複的例子: -將GIF圖像添加到TclTk窗口

backg <- 'white' 
pdlg <- tktoplevel(background=backg) 
tcl('wm', 'geometry', pdlg, '500x100+450+350') 
tilg <- 'Package installation in progress' 
tkwm.title(pdlg, tilg) 
fn <- tkfont.create(family = 'helvetica', size = 12) 

nwlabel <- " The requisite packages are being installed. This may take several \nminutes... \n" 
tllab <- tklabel(pdlg, text = nwlabel, font = fn, pady = 0, background=backg) 

clickEv <- tclVar(0) 

OK.but <- tkbutton(pdlg, text=' Stop ', command=function() tclvalue(clickEv) <- 1, font=fn, background='grey', pady=0) 

tkgrid(tllab, columnspan=1) 
tkgrid(OK.but, row=3) 

tkbind(pdlg, "<Destroy>", function() tclvalue(done) <- 2) 
tkfocus(pdlg) 

#This allows me to insert a GIF image but the animation is lost. Also it would be convenient if the output can be obtained using 'tkgrid' instead of 'tkpack' 
pdlg2 <- tktoplevel(background='white') 
loading <- tclVar() 
tcl('image', 'create', 'photo', loading, 
file='file path to GIF file') 
trial <- tklabel(pdlg2, image=loading) 
tkpack(trial) 

一個例子GIF文件可以從這裏-http下載://www.dlfpramericalife.com/library/images/final_loading_big.gif

理想的情況下,GIF圖像應放置在「停止」按鈕上方,但位於文本下方。非常感謝您的幫助!

回答

1

在Tcl/Tk中,這很容易。

set img [image create photo -file nameofthefile.gif] 
label .l -image $img 

我不知道R,但以您的代碼爲指導,我想像這樣的東西,但請檢查它!

img <- tkimage.create('photo', file='nameofthefile.gif') 
imglab <- tklabel(pdlg, image = img) 

...然後你格/包/把它放在任何你想要的地方。請注意,這不適用於GIF動畫,我認爲動畫必須是手動處理器,使用定時更新圖像內容的定時器,但我從未做過,也不知道該怎麼做。您可以檢查Tcl/Tk wiki獲取更多幫助。

+0

我們從未做過動畫GIF的實際動畫部分(儘管您仍然可以選擇要顯示哪個動畫幀)。有些人可能認爲這是一個功能! –