1

境界線のない wxPython ウィンドウ (つまり ) を作成し、このウィンドウ内でstyle = wx.BORDER_NONEfancytext ( ) を使用したいと考えています。wx.lib.fancytext私は wxPython に非常に慣れていないため、私の質問はばかげているように聞こえるかもしれません。(これは実際に wxPython を使用する最初の試みです)。

テキストの空想を設定する方法が必要なため、fancytext を使用する場合はpanelin myを使用する必要があると考えました。ただし、 で使用する(または でさえも)不可能なようです。frameOnPaintpanelssizersstyle = 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)

ファンシーテキストが消えます。

境界線のないウィンドウ ( ) で fancytext を使用する方法はありますstyle = wx.BORDER_NONEか?

4

1 に答える 1

1

問題は、パネルがフレームのサイズにサイズ変更されていないことです。次のようにサイザーを使用する必要があります。

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(FancyText(frame), 1, wx.EXPAND)
frame.SetSizer(sizer)
frame.Layout()
于 2012-05-18T15:36:01.893 に答える