【发布时间】:2010-11-06 17:59:59
【问题描述】:
我制作了一个小工具,可以解析一段文本,进行一些简单的处理(从字典中检索值、一些正则表达式等),然后输出结果。
为了更容易阅读结果,我制作了两个图形端口,一个使用 tkInter,另一个使用 wxPython,因此输出可以很好地显示在文本区域中,其中一些单词具有不同的颜色。
tkInter 实现使用Tkinter.Text 对象并将颜色应用于单词使用标签(使用方法Tkinter.Text.tag_config 配置并将它们传递给Tkinter.Text.insert),并且在输出大约400 个不同颜色的单词时测量为
wxPython 实现使用wx.richtext.RichTextCtrl 并将颜色应用于单词使用wx.richtext.RichTextCtrl.BeginTextColour 然后wx.richtext.RichTextCtrl.AppendText;性能太荒谬了,做同样的工作只需要 0.02 秒到 tkInter 端口需要大约 1.4 秒。
这是 RichTextCtrl 小部件、wxPython 绑定的固有问题,还是有一些方法可以加快速度?
谢谢!
【问题讨论】:
-
你在哪个平台上工作?我注意到 wxPython 在 Linux 上比在 Windows 上慢很多。
-
Linux...我可以在windows上试试看会不会好一点。
-
我已经在 Windows 上测试过,确实更快(现在大约需要一半时间,大约 0.6 秒),但仍然比 tkInter 版本慢了近 30 倍:-s
-
尝试向 wxPython-users 组发帖,看看 Robin 是否有任何见解。我敢打赌那里的专家可以更快地获取您的代码。 groups.google.com/group/wxPython-users
-
您是否尝试过使用 Freeze() 和 Thaw() 仅在完成附加彩色文本后更新显示?
标签: python performance wxpython tkinter richtextediting