Python 在Wx TXTCRL中获取错误
我正在马来亚拉姆语文本编辑器上工作。我需要在WxPython中单击按钮时使用文本控件加粗选定的文本。工作环境是Ubuntu10.04和Wxpython2.8 这是我的密码:Python 在Wx TXTCRL中获取错误,python,wxpython,wxtextctrl,Python,Wxpython,Wxtextctrl,我正在马来亚拉姆语文本编辑器上工作。我需要在WxPython中单击按钮时使用文本控件加粗选定的文本。工作环境是Ubuntu10.04和Wxpython2.8 这是我的密码: import wx class TestFrame(wx.Frame): def __init__(self, *args, **kwargs): super(TestFrame, self).__init__(*args, **kwargs) panel = wx.Panel(s
import wx
class TestFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(TestFrame, self).__init__(*args, **kwargs)
panel = wx.Panel(self)
text = 'Highlight some text and then click the button below'
self.textctrl = wx.TextCtrl(panel, value=text, style=wx.TE_RICH2,
size=(300, -1))
btn = wx.Button(panel, wx.ID_BOLD)
btn.Bind(wx.EVT_BUTTON, self.on_bold)
pSizer = wx.BoxSizer(wx.VERTICAL)
pSizer.Add(self.textctrl, 0, wx.ALL, 5)
pSizer.Add(btn, 0, wx.ALL, 5)
panel.SetSizer(pSizer)
vSizer = wx.BoxSizer(wx.VERTICAL)
vSizer.Add(panel, 1, wx.EXPAND)
self.SetSizer(vSizer)
self.Layout()
def on_bold(self, event):
start, end = self.textctrl.GetSelection()
font = self.textctrl.GetFont()
font.MakeBold()
text_attr = wx.TextAttr(self.textctrl.ForegroundColour,
self.textctrl.BackgroundColour, font)
self.textctrl.SetStyle(start, end, text_attr)
if __name__ == '__main__':
wxapp = wx.App(False)
testFrame = TestFrame(None)
testFrame.Show()
wxapp.MainLoop()
错误
Traceback (most recent call last):
File "C:/Python27/gdg", line 29, in on_bold
font.MakeBold()
AttributeError: 'Font' object has no attribute 'MakeBold'
谢谢@Yoriz,但得到了错误回溯(最近一次调用是最后一次):文件“C:/Python27/gdg”,第29行,on_bold font.MakeBold()AttributeError:'Font'对象没有属性'MakeBold',我正在使用wxpython 2.9.4.0版,因此您必须升级您的版本,或者了解2.8版使用了什么,而不是MakeBold ps看起来这可能是解决方法-
import wx
class TestFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(TestFrame, self).__init__(*args, **kwargs)
panel = wx.Panel(self)
text = 'Highlight some text and then click the button below'
self.textctrl = wx.TextCtrl(panel, value=text, style=wx.TE_RICH2,
size=(300, -1))
btn = wx.Button(panel, wx.ID_BOLD)
btn.Bind(wx.EVT_BUTTON, self.on_bold)
pSizer = wx.BoxSizer(wx.VERTICAL)
pSizer.Add(self.textctrl, 0, wx.ALL, 5)
pSizer.Add(btn, 0, wx.ALL, 5)
panel.SetSizer(pSizer)
vSizer = wx.BoxSizer(wx.VERTICAL)
vSizer.Add(panel, 1, wx.EXPAND)
self.SetSizer(vSizer)
self.Layout()
def on_bold(self, event):
start, end = self.textctrl.GetSelection()
font = self.textctrl.GetFont()
font.MakeBold()
text_attr = wx.TextAttr(self.textctrl.ForegroundColour,
self.textctrl.BackgroundColour, font)
self.textctrl.SetStyle(start, end, text_attr)
if __name__ == '__main__':
wxapp = wx.App(False)
testFrame = TestFrame(None)
testFrame.Show()
wxapp.MainLoop()