1

画面に表示できる画像の数を計算する関数があります。画面に表示できる画像よりも多くの画像がある場合は、すべての画像が表示されるまで画像のサイズを変更します。

次に、1 つの垂直ボックスサイザーと複数の水平ボックスサイザーでそれらを表示したい!

ボックスサイザーの水平方向の数は動的で、画像の数に応じて 1 つまたは複数になります。

複数のボックスサイザーを定義して、それらを垂直ボックスサイザーに追加するにはどうすればよいですか?

4

2 に答える 2

3

単純に水平方向のサイザーをループに.Addして、それらを同じ垂直方向のサイザーに接続しないのはなぜですか? 例えば

def HorzInVert(n):
  vert = wx.BoxSizer(wx.VERTICAL)
  horizontals = []
  for i in range(n):
    horz = wx.BoxSizer(wx.HORIZONTAL)
    vert.Add(horz,1, wx.ALL, 0)
    horizontals.append(horz)
  return vert, horizontals

この単純な関数はどこからでも呼び出すことができ、垂直サイザーとその中のn水平サイザーのリストを返します。次に、呼び出し元は水平スライダーに適切なものを追加SetSizerし、垂直サイザーを引数として適切に追加し、垂直サイザーの.Fit. もちろん、Adds がどのように実行されるかを正確に制御するためのあらゆる種類の引数を使用して、必要に応じてより洗練されたものにすることができます。

于 2010-07-03T15:37:36.667 に答える
0

wx.GridSizerがその答えです!

于 2010-07-04T12:23:17.687 に答える