wxPython RichTextCtrl比tkInter Text慢很多吗?
我做了一个小工具,可以解析一段文本,进行一些简单的处理(比如从字典中获取值,使用一些正则表达式等等),然后输出结果。
为了让结果更容易阅读,我做了两个图形界面,一个是用tkInter,另一个是用wxPython,这样输出的内容就可以在一个文本区域里很好地显示,并且有些单词会用不同的颜色。
tkInter的实现使用了Tkinter.Text
对象,给单词上色是通过标签来实现的(使用Tkinter.Text.tag_config
方法来配置标签,然后传递给Tkinter.Text.insert
),在输出大约400个不同颜色的单词时,耗时不到0.02秒。
wxPython的实现使用了wx.richtext.RichTextCtrl
,给单词上色是通过wx.richtext.RichTextCtrl.BeginTextColour
来开始上色,然后用wx.richtext.RichTextCtrl.AppendText
来添加文本;性能非常差,做同样的事情竟然要大约1.4秒,而tkInter只需要0.02秒。
这是RichTextCtrl控件本身的问题,还是wxPython的绑定有问题,或者有没有什么方法可以加速呢?
谢谢!
2 个回答
0
这句话有点绕,但它是在问你是否可以用 wxStyledTextCtrl 来代替呢?
1
我在这里复制了一个解决问题的评论:
你有没有试过使用 Freeze() 和 Thaw(),这样可以在你完成添加彩色文本后再更新显示? – mghie 6月30日 7:20