2012-02-03 32 views
1

私はウィジェットをたくさん持っていますが、今私は私のプログラムの別のセクション/ページをフリップすると、それぞれのウィジェットに個別にHide()とShow()を使用しています。ウィジェットをグループにまとめて、非表示と表示、wxpython

私はこれを行ったので、1つ1つずつ残っている/表示している(これはまあ)。

これらのウィジェットをすべてグループ化してから、このグループを非表示にしてこのグループを非表示にすることはできますか?

答えて

3

ウィジェットの表示と非表示を切り替えるときにフリーズ/解凍/レイアウトを使用してみてください。このようにして、彼らはすべて同時に出現/消滅するはずです。

+1

+1素晴らしいです。ただし、docsから:このメソッドは、すべてのプラットフォームやすべてのコントロールで実装されているわけではないので、wxWindowsへのヒントであり、必須のディレクティブではありません。 – joaquin

+0

これはかなりうまく動作しますが、すべてのプラットフォームでサポートされているわけではありません。 – thelost

1

ウィジェットのグループをサイザー内に同じ親コンテナ(パネル)として配置し、親を非表示にします。すべてのウィジェットは親と一緒に消えます。

ボタンやチェックボックスなどを非表示にすることは最適な解決策ではないことに注意してください。 widget.Disable()

+0

パネルを使用せずにこれを行う方法はありますか?ウィジェットは少し組織化されていません – thelost

+1

次に、コードのリファクタリングを開始するときが来たかもしれません:-)。 – joaquin

+0

通常はパネルを必要とするか、クロスプラットフォームの正しいタブ動作を失うでしょう –

関連する問題