2012-12-27 45 views
0

我正在開發一個使用wxrichtextctrl的程序。我被困在設置字體的選擇。大量的谷歌搜索後,我發現了wxpython演示,我找到了一個示例。以下是wxpython演示的原始代碼,它會產生一個錯誤。wxpython演示代碼richtextctrl

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): 文件「C:\ Python27 \ LIB \站點包\ WX-2.9.4- msw \ wx \ richtext.py「,3121行,GetStyle TypeError:在'RichTextCtrl_GetStyle'方法中,期望的參數3類型爲'wxRichTextAttr'&'

文件 「C:\ Python27 \ LIB \站點包\ WX-2.9.4-MSW \ WX \ richtext.py」,線3111,在的SetStyle 回報_richtext.RichTextCtrl_SetStyle(* ARGS,** kwargs) 類型錯誤:在方法 'RichTextCtrl_SetStyle',預期類型 'wxRichTextAttr常量&'

我使用Windows XP和wxPython的2.9蟒2.7的參數3。在演示中,字體和顏色也不起作用。 getstyle和setstyle正在生成錯誤。顯然是因爲這個字體和顏色在wxpython演示中的richtextctrl演示中不起作用。

回答

1

您找到的示例代碼可能適用於較舊的wxPython版本,因此它不起作用。

取代:

attr = wx.TextAttr() 

有:

attr = wx.richtext.RichTextAttr() 

,對於這兩種wx 2.8.12wx 2.9.4工作。