Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 25, 2010 06:21:46

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

wxPython richtext выбор шрифта

Всем привет.
Взял пример из wxPython demo.
Пытаюсь для текста который находится в self.rtc (RichText) установить шрифт:

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

r = self.rtc.GetSelectionRange()
fontData = wx.FontData()
fontData.EnableEffects(False)
attr = rt.TextAttrEx()
attr.SetFlags(rt.TEXT_ATTR_FONT)
if self.rtc.GetStyle(self.rtc.GetInsertionPoint(), attr):
fontData.SetInitialFont(attr.CreateFont())

dlg = wx.FontDialog(self, fontData)
if dlg.ShowModal() == wx.ID_OK:
fontData = dlg.GetFontData()
font = fontData.GetChosenFont()
if font:
attr.SetFlags(rt.TEXT_ATTR_FONT)
attr.SetFont(font)
self.rtc.SetStyle(r, attr)
dlg.Destroy()
но почему то вылетает ошибка:
Traceback (most recent call last):
File "editor.py", line 235, in OnFont
if self.rtc.GetStyle(self.rtc.GetInsertionPoint(), attr):
File "/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/richtext.py", line 2468, in GetStyle
return _richtext.RichTextCtrl_GetStyle(*args, **kwargs)
TypeError: in method 'RichTextCtrl_GetStyle', expected argument 3 of type 'wxRichTextAttr &'
swig/python detected a memory leak of type 'wxTextAttrEx *', no destructor found.
У кого - нибудь работает данный пример?

Python 2.5.4
wxPython 2.8.6
OS: Linux



Офлайн

#2 Фев. 25, 2010 15:27:57

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

wxPython richtext выбор шрифта

Посмотрел wxPython demo 2.8.10.1 там ошибка была исправлена:

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

r = self.rtc.GetSelectionRange()
fontData = wx.FontData()
fontData.EnableEffects(False)
attr = rt.TextAttrEx()
attr.SetFlags(rt.TEXT_ATTR_FONT)
if self.rtc.GetStyle(self.rtc.GetInsertionPoint(), attr):
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(rt.TEXT_ATTR_FONT)
attr.SetFont(font)
self.rtc.SetStyle(r, attr)
dlg.Destroy()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version