wxPython RichTextCtrl比tkInter Text慢很多吗?

0 投票
2 回答
1063 浏览
提问于 2025-04-15 12:34

我做了一个小工具,可以解析一段文本,进行一些简单的处理(比如从字典中获取值,使用一些正则表达式等等),然后输出结果。

为了让结果更容易阅读,我做了两个图形界面,一个是用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

撰写回答