2012-12-27 5 views
0

Я разрабатываю программу, используя wxrichtextctrl. Я застрял в установке шрифта для выделения. После многоголоджинга я нашел демонстрацию wxpython, где я нашел образец. Следующим является исходный код из демонстрации wxpython, которая генерирует ошибку.wxpython demo code 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 (* арг, ** kwargs) TypeError: в методе 'RichTextCtrl_SetStyle', как ожидается аргумент 3 типа 'wxRichTextAttr сопзЬ &'

Я использую окна хр и WxPython 2.9 питона 2.7. В демо также нет шрифта и цвета. Создаются ошибки в стиле getstyle и setstyle. По-видимому, из-за этого шрифт и цвет не работают в демоверсии richtextctrl в демонстрации wxpython.

ответ

1

Этот пример кода, который вы нашли, может быть для старой версии wxPython, поэтому он не работает.

заменить:

attr = wx.TextAttr() 

с:

attr = wx.richtext.RichTextAttr() 

Это работает как wx 2.8.12 и wx 2.9.4.

Смежные вопросы