gpt4 book ai didi

python - 如何获得带有 FancyText 且无边框(wx.BORDER_NONE)的 wxPython 框架?

转载 作者:太空宇宙 更新时间:2023-11-03 19:29:34 25 4
gpt4 key购买 nike

我想构建一个无边框的wxPython窗口(即style = wx.BORDER_NONE)并在该窗口内使用fancytext(wx.lib.fancytext)。请注意,我对 wxPython 很陌生,我的问题可能听起来很愚蠢。 (这实际上是我第一次尝试使用wxPython)。

我认为使用 fancytext 时需要在我的 frame 中使用 panel,因为需要 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()

(此示例使用从 here 和 wxPython 演示中找到的代码)

如果将初始化窗口的行更改为

frame = wx.Frame(None, wx.ID_ANY, title='wxPython fancy text', size=(500, 250), style = wx.BORDER_NONE)

花哨的文字消失了。

有什么方法可以在没有边框的窗口上使用 fancytext (style = wx.BORDER_NONE) 吗?

最佳答案

问题是面板的大小没有调整为框架的大小。您需要使用 sizer,如下所示:

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(FancyText(frame), 1, wx.EXPAND)
frame.SetSizer(sizer)
frame.Layout()

关于python - 如何获得带有 FancyText 且无边框(wx.BORDER_NONE)的 wxPython 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com