0

wxrichtextctrl を使用してプログラムを開発しています。選択範囲のフォントの設定に行き詰まっています。多くのグーグル検索の後、サンプルを見つけたwxpythonデモを見つけました。以下は、エラーを生成しているwxpythonデモの元のコードです。

  def OnFont(self, evt):
    if not self.rtc.HasSelection():
        return

    r = self.rtc.GetSelectionRange()
    fontData = wx.FontData()
    fontData.EnableEffects(False)
    attr = wx.TextAttr()
    attr.SetFlags(wx.TEXT_ATTR_FONT)
    if self.rtc.GetStyle(self.rtc.GetInsertionPoint(), attr):#line is generating error
        fontData.SetInitialFont(attr.GetFont())

    dlg = wx.FontDialog(self, fontData)
    if dlg.ShowModal() == wx.ID_OK:
        fontData = dlg.GetFontData()
        font = fontData.GetChosenFont()
        if font:
            attr.SetFlags(wx.TEXT_ATTR_FONT)
            attr.SetFont(font)
            self.rtc.SetStyle(r, attr)#generating error
    dlg.Destroy()

self.rtc.GetStyle(self.rtc.GetInsertionPoint(), attr): File "C:\Python27\lib\site-packages\wx-2.9.4-msw\wx\richtext.py", の場合、エラーが発生します。行 3121、GetStyle の TypeError: メソッド 'RichTextCtrl_GetStyle' で、タイプ 'wxRichTextAttr &' の引数 3 が必要です。

ファイル「C:\Python27\lib\site-packages\wx-2.9.4-msw\wx\richtext.py」、行 3111、SetStyle で _richtext.RichTextCtrl_SetStyle(*args, **kwargs) TypeError: in method ' を返しますRichTextCtrl_SetStyle'、タイプ 'wxRichTextAttr const &' の予期される引数 3

Windows XP と wxpython 2.9 python 2.7 を使用しています。デモでも、フォントと色が機能しません。getstyle と setstyle でエラーが発生しています。どうやらこれが原因で、wxpython デモの richtextctrl デモでフォントと色が機能しません。

4

1 に答える 1

1

あなたが見つけたそのサンプルコードは、古いバージョンのwxPythonのものである可能性があり、それが機能しない理由です。

交換:

attr = wx.TextAttr()

と:

attr = wx.richtext.RichTextAttr()

これはとの両方wx 2.8.12で機能しwx 2.9.4ます。

于 2012-12-28T05:28:44.747 に答える