我在让我的wxPython窗口刷新时遇到了问题.它目前正在使用wxmpl绘制图形,可以进行缩放,平移等.有时,用户可能会绘制大量数据并放大一小部分,这可能导致它"冻结".我的意思是剧情本身没有更新,轴标签是相互重叠的.它正在修改绘图,只是没有正确显示更新的信息.如果您调整窗口大小,则会正确重绘绘图.
我花了大量的时间来挖掘wx,wxmpl和matplotlib的源代码和文档......我想出的最佳解决方案是调整窗口大小以强制重绘(从而正确显示更新的绘图) .
# All of these fail - displays the same, incorrect plot
# (view is a wxmpl.PlotPanel object, which inherits from wx.Window among other things)
view.Refresh()
view.Update()
view.draw()
# This works, but is clearly less than ideal
view.SetSize((view.GetSize().width, view.GetSize().height+1))
view.SetSize((view.GetSize().width, view.GetSize().height-1))
Run Code Online (Sandbox Code Playgroud)
必须有一个更好的方法 - 我真正想知道的是wx.Window.SetSize重绘窗口的作用,而只是调用它.或者,有没有我错过的方法?