0

「読み込み中」の 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 画像は「停止」ボタンの上、テキストの下に配置する必要があります。助けてくれて本当にありがとうございます!

4

1 に答える 1

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 /Tkwikiを確認してください。

于 2012-11-01T07:58:58.240 に答える