Я хотел бы построить окно wxPython без границ (то есть style = wx.BORDER_NONE
) и использовать fancytext (wx.lib.fancytext
) внутри этого окна. Обратите внимание, что я новичок в wxPython, и мой вопрос может показаться глупым. (на самом деле это моя первая попытка использования wxPython).
Я подумал, что мне нужно будет использовать panel
в моем frame
при использовании fancytext, поскольку для установки фантазии для текста требуется метод OnPaint
. Однако кажется невозможным использовать panels
(или даже sizers
) с style = wx.BORDER_NONE
.
Это то, что я хотел бы, но без границ окна и прочего:
import wx
import wx.lib.fancytext as fancytext
test_str2 = '<font family="swiss" color="dark green" size="40">big green text</font>'
class FancyText(wx.Panel):
"""display fancytext on a panel"""
def __init__(self, parent):
wx.Panel.__init__(self, parent, wx.ID_ANY)
self.Bind(wx.EVT_PAINT, self.OnPaint)
def OnPaint(self, evt):
"""generate the fancytext on a paint dc canvas"""
dc = wx.PaintDC(self)
fancytext.RenderToDC(test_str2, dc, 0, 20)
app = wx.App(0)
frame = wx.Frame(None, wx.ID_ANY, title='wxPython fancy text', size=(500, 250))
frame.Centre()
FancyText(frame)
frame.Show(True)
app.MainLoop()
(В этом примере используется код, найденный здесь и из демонстрации wxPython)
Если изменить строку, инициализирующую окно, на
frame = wx.Frame(None, wx.ID_ANY, title='wxPython fancy text', size=(500, 250), style = wx.BORDER_NONE)
Необычный текст исчезает.
Можно ли как-нибудь использовать необычный текст в окне без границ (style = wx.BORDER_NONE
)?