首页 > 解决方案 > wxPython小部件的像素完美对齐?

问题描述

概括:

我正在尝试在BoxSizer底部水平对齐多个 wxPython 小部件,但它们仅相差一个像素,如下面的屏幕截图所示:

问题截图(声望不够,无法在此处嵌入图片)

如您所见,BitmapToggleButton的位置比TextCtrl小部件高一个像素。wxPython检查工具显示 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)

标签: pythonuser-interfacealignmentwxpython

解决方案


推荐阅读