ゼロからの BoxSizerチュートリアルの適切なアドバイスに従って、コードをリファクタリングして、wx.LEFT/RIGHT/TOP/BOTTOM フラグを「スペーサー」に分解しています。
horizontal_sizer.Add(someControl, 0, wx.LEFT, border)
になります:
horizontal_sizer.Add((border, 0))
horizontal_sizer.Add(someControl)
上記の場合、それらは完全に同等であると確信しています。ただし、wx.EXPAND
ゼロ以外の比率が次のように指定されている場合:
horizontal_sizer.Add(someControl, proportion, wx.LEFT | wx.EXPAND, border)
これは以下ですか:
horizontal_sizer.Add((border, 0))
horizontal_sizer.Add(someControl, proportion, wx.EXPAND)
上記と完全に同等ですか?視覚的には同じように見えますが、欠けているものはありますか? 言い換えればwx.EXPAND
、国境に影響を与えますか? はいの場合、どのように?
もちろん、上記の例は些細なことですが、複雑なサイザー レイアウトでは、上記の変換 (チュートリアルで提案されているように) により、コードが大幅に簡素化され、一般的な UI パターンが際立ちます。これは、OR されたフラグと数字の混乱では単純に判読できませんでした。
編集:スペーサーを追加する正しい方法に関するフィードバックをいただければ幸いです。たとえば、私はここで見ました:
mainSizer.Add(wx.StaticText(self), 0, wx.EXPAND) # add a "spacer"
または私が維持しているコードでは、人々は次のことを行っています。
horizontal_sizer.Add((0, 0), 1) # which seems equivalent to Add((0, 0))
現在、Pythonには1つ、できれば1つだけの明白な方法があるはずです-ここでは少なくとも4つがあります-専門家のフィードバックを歓迎します.