wxpython演示代码richtextctrl

时间:2012-12-27 17:31:59

标签: wxpython

我正在使用wxrichtextctrl开发一个程序。我坚持为选择设置字体。经过大量的谷歌搜索后,我找到了wxpython演示,在那里我找到了一个样本。以下是来自wxpython demo的原始代码,它产生了一个错误。

  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()

我收到错误    if self.rtc.GetStyle(self.rtc.GetInsertionPoint(),attr):   GetStyle中的文件“C:\ Python27 \ lib \ site-packages \ wx-2.9.4-msw \ wx \ richtext.py”,第3121行   TypeError:在方法'RichTextCtrl_GetStyle'中,预期参数3的类型为'wxRichTextAttr&'

文件“C:\ Python27 \ lib \ site-packages \ wx-2.9.4-msw \ wx \ richtext.py”,第3111行,在SetStyle中     return _richtext.RichTextCtrl_SetStyle(* args,** kwargs) TypeError:在方法'RichTextCtrl_SetStyle'中,类型为'wxRichTextAttr const&'的预期参数3

我正在使用windows xp和wxpython 2.9 python 2.7。在演示中,字体和颜色也不起作用。 getstyle和setstyle产生错误。显然因为这个字体和颜色在wxpython演示中的richtextctrl演示中不起作用。

1 个答案:

答案 0 :(得分:1)

您找到的示例代码可能是较旧的wxPython版本,这就是它无效的原因。

取代:

attr = wx.TextAttr()

使用:

attr = wx.richtext.RichTextAttr()

适用于wx 2.8.12wx 2.9.4