Вы продолжаете упоминать текстовое поле, но я предполагаю, что вы не имеете в виду wx.StaticBox
, поскольку оно никогда специально не упоминается. Обратите внимание, что есть wx.StaticBoxSizer
, если вы имеете в виду StaticBox
.
Вы всегда можете просто выделить вертикальный размер окна и, возможно, поиграть с размером шрифта, чтобы настроить «воздух» вокруг текста.
Вот ужасный пример:
import sys
sys.path.insert(0,'/usr/lib/python3/dist-packages')
import wx
class MyFrame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title)
self.panel = wx.Panel(self, wx.ID_ANY)
text1 = wx.StaticText(self, -1, 'Tight Text')
text1.SetForegroundColour(wx.WHITE)
text1.SetBackgroundColour(wx.RED)
text2 = wx.StaticText(self, -1, " Loose text in a box ")
text3 = wx.StaticText(self, -1, " Tighter text in a box ")
text4 = wx.TextCtrl(self, -1, "Tighter text in a box", size=(130,30), style=wx.TE_READONLY|wx.TE_CENTRE)
t21 = wx.StaticText(self, -1, "")
t22 = wx.StaticText(self, -1, "")
t31 = wx.StaticText(self, -1, "")
t32 = wx.StaticText(self, -1, "")
text2.SetBackgroundColour(wx.RED)
text2.SetForegroundColour(wx.WHITE)
text3.SetBackgroundColour(wx.RED)
text3.SetForegroundColour(wx.WHITE)
text4.SetForegroundColour(wx.WHITE)
t21.SetBackgroundColour(wx.RED)
t22.SetBackgroundColour(wx.RED)
t31.SetBackgroundColour(wx.RED)
t32.SetBackgroundColour(wx.RED)
text4.SetBackgroundColour(wx.RED)
sbox=wx.BoxSizer(wx.VERTICAL)
sbox.Add(t21,0 ,wx.EXPAND,0)
sbox.Add(text2, 0, wx.EXPAND, 0)
sbox.Add(t22,0,wx.EXPAND,0)
font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(2)
sbox1=wx.BoxSizer(wx.VERTICAL)
t31.SetFont(font)
t32.SetFont(font)
sbox1.Add(t31,0 ,wx.EXPAND,0)
sbox1.Add(text3, 0, wx.EXPAND, 0)
sbox1.Add(t32,0,wx.EXPAND,0)
self.Bind(wx.EVT_CLOSE, self.OnClose)
sizer=wx.BoxSizer(wx.VERTICAL)
sizer.Add(text1,0,wx.ALL,5)
sizer.Add(sbox,0,wx.ALL,5)
sizer.Add(sbox1,0,wx.ALL,5)
sizer.Add(text4,0,wx.ALL,5)
self.SetSizer(sizer)
self.Show()
def OnClose(self, event):
self.Destroy()
app = wx.App()
top = MyFrame("My Window")
app.MainLoop()
Пожалуйста, не обращайте внимания на мое утверждение import
, как в разделе «4.0.4 gtk2 (phoenix) wxWidgets 3.0.5» для Linux, установка цвета фона для статических текстов, похоже, не удалась полностью, и я использую другую версию wx