Начал пробовать ваять ГУИ на wxPython.
Код простенького интерфейса под спойлером:
И получил вот такой результат:
Как можно видеть -- у текстовых контроллов разный размер. Нет границы заданной справа и снизу.
Статик тексты подсветил я.
Верхний статик текст обрезан. Снизу обрезано.
Применение self.Layout() -- ничего не меняет.
Почитал в тырнетах етих вашех© -- подобный случай нашёл на Ubuntu.
Может кто нибудь сказать -- что это такое и как с этим бороться?
Linux Mint 20.3.
Код простенького интерфейса под спойлером:
Код:
#!/usr/bin/env python3
import wx
import wx.adv
from wx.lib.wordwrap import wordwrap
import random
class MyWindow(wx.Frame):
def __init__(self):
super().__init__(None, title = "WX-Test-MessageBox") #style = wx.DEFAULT_FRAME_STYLE & ~ wx.RESIZE_BORDER
panel = wx.Panel(self, wx.ID_ANY)
box_sizer = wx.BoxSizer(wx.VERTICAL)
grid_sizer = wx.GridBagSizer(10, 10)
# Инструкция приложения
lbl_caption = wx.StaticText(panel, label = "Введите значение в нужное поле", style = wx.ALIGN_CENTRE_VERTICAL)
lbl_caption.SetForegroundColour('#556B2F')
sfont = wx.Font(16, wx.DEFAULT, wx.NORMAL, wx.BOLD)
lbl_caption.SetFont(sfont)
grid_sizer.Add(lbl_caption, pos = (0,0), span = (1,5), flag = wx.EXPAND|wx.ALL, border = 10)
self.ent_cls = wx.TextCtrl(panel)
self.ent_frg = wx.TextCtrl(panel)
self.ent_ran = wx.TextCtrl(panel)
self.ent_klv = wx.TextCtrl(panel)
self.ent_rmr = wx.TextCtrl(panel)
self.ent_dls = wx.TextCtrl(panel)
lbl_cls = wx.StaticText(panel, label = "Первый")
lbl_cls.SetBackgroundColour('#FFDEAD')
lbl_frg = wx.StaticText(panel, label = "Второй")
lbl_ran = wx.StaticText(panel, label = "Третий")
lbl_klv = wx.StaticText(panel, label = "Четвёртый")
lbl_klv.SetBackgroundColour('#FFDEAD')
lbl_rmr = wx.StaticText(panel, label = "Пятый")
lbl_dls = wx.StaticText(panel, label = "Шестой")
#font_lbl = wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD)
# lbl_cls.SetFont(font_lbl)
# lbl_frg.SetFont(font_lbl)
# lbl_ran.SetFont(font_lbl)
#lbl_klv.SetFont(font_lbl)
# lbl_rmr.SetFont(font_lbl)
# lbl_dls.SetFont(font_lbl)
lbl_emp1 = wx.StaticText(panel, label = '')
lbl_emp2 = wx.StaticText(panel, label = '')
imag = wx.Image('ракета.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()
bmp = wx.StaticBitmap(panel, bitmap = imag)
grid_sizer.Add(bmp, pos = (1,2), span = (5,1), flag = wx.EXPAND|wx.BOTTOM, border = 0)
grid_sizer.Add(self.ent_cls, pos = (1,0), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(self.ent_frg, pos = (2,0), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(self.ent_ran, pos = (3,0), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(self.ent_klv, pos = (1,4), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(self.ent_rmr, pos = (2,4), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(self.ent_dls, pos = (3,4), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_cls, pos = (1,1), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_frg, pos = (2,1), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_ran, pos = (3,1), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_klv, pos = (1,3), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_rmr, pos = (2,3), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_dls, pos = (3,3), span = (1,1), flag = wx.EXPAND|wx.ALL, border = 0)
# sz = self.grid_sizer.GetEmptyCellSize()
# print(sz)
grid_sizer.Add(lbl_emp1, pos =(4,0), span = (1,2), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(lbl_emp2, pos =(4,3), span = (1,2), flag = wx.EXPAND|wx.ALL, border = 0)
btn_comp = wx.Button(panel, label = "Нажать")
btn_clr = wx.Button(panel, label = "Нажми")
grid_sizer.Add(btn_comp, pos = (5,0), span = (1,2), flag = wx.EXPAND|wx.ALL, border = 0)
grid_sizer.Add(btn_clr, pos = (5,3), span = (1,2), flag = wx.EXPAND|wx.ALL, border = 0)
# grid_sizer.AddGrowableCol(0)
# grid_sizer.AddGrowableCol(1)
# grid_sizer.AddGrowableCol(2)
# grid_sizer.AddGrowableCol(3)
# grid_sizer.AddGrowableCol(4)
#grid_sizer.Fit(self)
box_sizer.Add(grid_sizer, proportion = 0, flag = wx.EXPAND|wx.ALL, border = 10)
panel.SetSizerAndFit(box_sizer)
self.Fit()
if __name__ == "__main__":
app = wx.App()
window = MyWindow()
window.Show()
app.MainLoop()
И получил вот такой результат:
Как можно видеть -- у текстовых контроллов разный размер. Нет границы заданной справа и снизу.
Статик тексты подсветил я.
Верхний статик текст обрезан. Снизу обрезано.
Применение self.Layout() -- ничего не меняет.
Почитал в тырнетах етих вашех© -- подобный случай нашёл на Ubuntu.
Может кто нибудь сказать -- что это такое и как с этим бороться?
Linux Mint 20.3.