我正在尝试在BoxSizer的底部水平对齐多个wxPython小部件,但如以下屏幕截图所示,它们仅相距一个像素:
如您所见,BitmapToggleButton的位置比TextCtrl小部件高1个像素。 wxPython inspection tool表示Button甚至高出两个像素,但是在屏幕截图中,它仅为一个。我认为这与边界计算有关,但我不知道。
如果我在下面的代码中省略了对齐标记,则小部件将对齐到中心,但是Button沿相反方向仍处于像素偏离状态。
header = wx.BoxSizer(wx.HORIZONTAL)
self.label_user = wx.StaticText(panel, label="User:")
self.input_user = wx.TextCtrl(panel)
self.edit_user = wx.BitmapToggleButton(panel, label=img_edit, style=wx.BU_EXACTFIT)
header.Add(...) # more widgets that are not bottom-aligned
header.Add(self.label_user, flag=wx.ALIGN_BOTTOM)
header.Add(5, -1)
header.Add(self.input_user, flag=wx.ALIGN_BOTTOM)
header.Add(self.lock_user, flag=wx.ALIGN_BOTTOM)
main_sizer.Add(header, flag=wx.LEFT | wx.TOP | wx.RIGHT | wx.EXPAND, border=views.constants.MARGIN)