質問

私はGUIプログラミングに最初の進出を行っており、WXPythonを把握しようとしています。私はWXGladeを使用しようとしていますが、それは少しバギーであることが判明しています。

グリッドサイザーを使用してレイアウトを作成しています。

私はあなたがサイザーに何かを追加するたびに、それが次のセルに入れられると考えました。これは、空のセルがある場合、それを何かで満たす必要があることを意味します。私は正しいですか?

これは私が目指しているレイアウトです(WXGladeスクリーンショット):

wxGlade layout screenshot

問題は、コードを生成することです。

enter image description here

    grid_sizer_1 = wx.GridSizer(3, 3, 0, 0)
    grid_sizer_1.Add(self.button_last_page, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
    grid_sizer_1.Add(self.button_up, 0, wx.ALIGN_BOTTOM|wx.ALIGN_CENTER_HORIZONTAL, 0)
    grid_sizer_1.Add(self.button_next_page, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
    grid_sizer_1.Add(self.button_left, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 0)
    grid_sizer_1.Add(self.button_select, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
    grid_sizer_1.Add(self.button_right, 0, wx.ALIGN_CENTER_VERTICAL, 0)
    grid_sizer_1.Add(self.button_down, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)

一見、「ダウン」ボタンが8番目ではなく7番目のセルに置かれているからです。

これを扱う標準的な方法は何ですか?空のセルを埋めるために、ある種のダミーウィジェットを入れますか?もしそうなら、どのウィジェット?それとも、間違った種類のサイザーを使用していますか?

ありがとう!

役に立ちましたか?

解決

あなたが言ったように...ダミーウィジェット(空白の静的テキスト)を追加するとうまく機能します。複数のadd()の代わりにaddmany()を使用することもできます。

grid_sizer_1 = wx.GridSizer(3, 3, 0, 0)
grid_sizer_1.AddMany( [
  (self.button_last_page, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL),
  (self.button_up, 0, wx.ALIGN_BOTTOM|wx.ALIGN_CENTER_HORIZONTAL),
  (self.button_next_page, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL),
  (self.button_left, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL),
  (self.button_select, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL),
  (self.button_right, 0, wx.ALIGN_CENTER_VERTICAL),
  (wx.StaticText(self, -1, ''), 0, wx.EXPAND),
  (self.button_down, 0, wx.ALIGN_CENTER_HORIZONTAL) ] )

他のヒント

私は使用に精通しています (0,0) これは、サイザーに伸縮性のサイズを追加することを意味します。したがって、次のような単一のオブジェクトを作成します empty_cell = (0,0) そして、固執します empty_cell あなたのサイザーでその空のスペースが必要な場所では(たとえば、wx.statictextが受け入れられた答えで使用されています)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top