質問
ウィンドウの下部にステータスラインをどのように作成しますか?非アクティブなエントリはあまり良く見えません。他にどんなオプションがありますか?
オンデマンドでのみ見える進歩バーを統合することは可能ですか?
(私はRからTKとTTKを使用しています。)
編集: :これが私の2番目のバージョンで、私にとっては正常に動作しますが、オンデマンドのステータスバー全体を表示したいと思います(Chromeブラウザのステータスバーと同様)。どうやってやるの? tklower(f)を呼ぶことは役に立ちません...
library(tcltk)
library(tcltk2)
tkdestroy(root)
root <- tktoplevel()
status <- tclVar("")
progress <- tclVar("0")
b <- tk2button(root, text="fake doing something!")
tkpack(b, padx=40, pady=10)
o <- tk2checkbutton(root, text="show progress", variable=progress)
tkpack(o, pady=10)
f <- tk2frame(root, relief="sunken")
l <- tk2label(f, textvariable=status)
tkpack(l, side="left", pady=2, padx=5, expand=0, fill="x")
tkpack(f, side="left", expand=1, fill="x", anchor="s")
sg <- ttksizegrip(root)
tkpack(sg, side="left", expand=0, anchor="se")
doit <- function() {
tclvalue(status) <- "working (hard) ..."
tcl("update")
do.pb <- tclvalue(progress)=="1"
if(do.pb) {
pb <- tk2progress(f, length=60, mode="determinate")
tkpack(pb, side="right", expand=0, padx=3, pady=2)
tkconfigure(pb, maximum=100, value=0)
}
for(i in 1:100) {
if(do.pb) {
tkconfigure(pb, value=i)
tcl("update")
}
Sys.sleep(0.03)
}
if(do.pb) tkdestroy(pb)
tclvalue(status) <- "Ready."
}
tkconfigure(b, command=doit)
tclvalue(status) <- "Ready."
解決
私はaを使用します ttk::frame
ウィジェット。その中に私は1つ以上配置します ttk::label
ウィジェット、およびa ttk::sizegrip
右端のウィジェット。
プログレスバーについては、いつものように追加してください。グリッドを使用する場合は、使用できます grid remove
StatusBarから削除するには、グリッドが設定を覚えているため、すぐに追加できます。または、ユーザーもできます lower
と raise
ビューから削除して、再び戻します。
SizeGripウィジェットに関するあなたの質問は不明です。 Windowsでは機能しないのはどうですか?
他のヒント
ステータスラインとは、ほとんどのブラウザウィンドウの下部にあるステータスバーのようなことを意味しますか?その場合、私は通常、ステータス文字列を含む変数にリンクされたtextVariableを持つラベルを使用します。
所属していません StackOverflow