【问题标题】:wxpython demo code richtextctrlwxpython演示代码richtextctrl
【发布时间】:2012-12-27 17:31:58
【问题描述】:

我正在使用 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): 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”中,预期参数 3 类型为“wxRichTextAttr const &”

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

【问题讨论】:

    标签: wxpython


    【解决方案1】:

    您找到的示例代码可能适用于较旧的 wxPython 版本,这就是它不起作用的原因。

    替换:

    attr = wx.TextAttr()
    

    与:

    attr = wx.richtext.RichTextAttr()
    

    这适用于wx 2.8.12wx 2.9.4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      相关资源
      最近更新 更多