Пиксельное идеальное выравнивание виджетов wxPython? - PullRequest
1 голос
/ 18 мая 2019

Резюме:

Я пытаюсь выровнять несколько виджетов wxPython по горизонтали в нижней части BoxSizer , но они отключены всего на пиксель, как видно на следующем снимке экрана:

Screenshot of the problem (not enough reputation to embed the image here)

Как видите, BitmapToggleButton располагается на один пиксель выше, чем виджет TextCtrl .Инструмент проверки wxPython говорит, что кнопка на два пикселя выше, но на скриншоте она только одна.Я думаю, что это как-то связано с вычислением границ, но я не знаю.

Если я опущу флаги выравнивания в приведенном ниже коде, виджеты будут выровнены по центру, но кнопка по-прежнему будет пикселем.выключить в обратном направлении.

код:

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)
...