Найти - Пользователи
Полная версия: wxPython richtext выбор шрифта
Начало » GUI » wxPython richtext выбор шрифта
1
magnet85
Всем привет.
Взял пример из 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
magnet85
Посмотрел 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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB