1

トップレベルウィンドウが最大化されているかどうかを確認できますか?また、プログラムで最大化できますか?私はWindowsXPでRのtcltkパッケージ8.5を使用しています。

質問の理由は次の<Visibility>とおりです。最初にwithdrawを呼び出し、次にdeiconifyを呼び出して、イベントを強制します。ただし、これら2つの関数呼び出しの前にウィンドウが最大化された場合、これらの呼び出しの後ではありません。イベントを実施する簡単な方法はありますか?

4

2 に答える 2

1

Visibilityイベントを特定のウィジェットとそのすべての子に伝播する関数を作成しました。

tkevent.propagate <- function(w,e) {
  tkevent.generate(w, e)
  children <- as.character(tkwinfo("children", w))
  if(length(children)>0) lapply(children, function(c) tkevent.propagate(c,e))
}

このように、withdraw / deiconifyを呼び出して、各ウィジェットにイベントを取得する必要はありません。

于 2010-08-07T07:36:39.250 に答える
1

ウィンドウが最大化されているかどうかを確認できます(戻り値としてwm state $toplevel探します)。zoomedしかし…</p>

<Visibility>OSは、Windowsでイベントを適切に生成しません。マップされているウィンドウでのみそれらを取得しますが、それは微妙に異なります。(Windowsは、スタックの順序とその結果についてXよりもはるかに少ない情報を提供します。TkはXのモデルにかなり近いです。)ただし、このイベントが必要な理由はわかりません。おそらくあなたの本当の目的に役立つ何か他のものがありますか?

于 2010-08-09T02:27:14.613 に答える