wxPython 出现Paint事件死循环问题求解
时间:2011-01-04
来源:互联网
这个问题很奇怪,开始运行程序是不会死的,但是吧窗口最小化,或者盖住窗口然后又显示,就会出现一直相应Paint事件的情况。
不知道是不是OnPaint响应函数的代码里面有什么因素导致了系统发送Paint事件从而导致死循环,有经验的给指导一下,谢谢!
Python code
不知道是不是OnPaint响应函数的代码里面有什么因素导致了系统发送Paint事件从而导致死循环,有经验的给指导一下,谢谢!
Python code
import wx class CurveArea(wx.Window): def __init__(self,parent,points,id = wx.ID_ANY,pos = wx.DefaultPosition, size = wx.DefaultSize,style = 0,name = "CurveArea"): wx.Window.__init__(self,parent,id,pos,size,style,name) self.step = 80 self.curve = [] self.points = points self.Bind(wx.EVT_PAINT, self.OnPaint) def _DoDraw(self,dc): def _DrawLines(lst): dc.DrawLines(lst) print lst num = len(lst) if 2 == num: x = int((lst[0][0] + lst[1][0]) / 2) y = int((lst[0][1] + lst[1][1]) / 2) self.curve.append((x,y)) else: newlst = [] for i in range(num - 1): x = (lst[i + 1][0] - lst[i][0]) * self.step / 200 + lst[i][0] y = (lst[i + 1][1] - lst[i][1]) * self.step / 200 + lst[i][1] newlst.append((x,y)) _DrawLines(newlst) dc.SetPen(wx.Pen("BLUE")) if 2 < len(self.points): _DrawLines(self.points) def OnPaint(self,evt): dc = wx.PaintDC(self) self._DoDraw(dc) if __name__ == '__main__': app = wx.App(False) frame = wx.Frame(None,size = (800,600)) ca = CurveArea(frame,[(50,500),(50,50),(500,50),(500,500)]) frame.Show(True) app.MainLoop()
作者: WizardOz 发布时间: 2011-01-04
您老用的 wx 啥版本呀 ... 貌似 VZ 说这是因为没有在处理 EVT_PAINT 的窗口中事先创建 wxPaintDC 造成的 windoze 下无休止的 WM_PAINT 消息流蓄积, 可能有望在 2.9.1 正式版中得到优雅的解决处置 ...
引用楼主 wizardoz 的回复:
这个问题很奇怪,开始运行程序是不会死的,但是吧窗口最小化,或者盖住窗口然后又显示,就会出现一直相应Paint事件的情况。
不知道是不是OnPaint响应函数的代码里面有什么因素导致了系统发送Paint事件从而导致死循环,有经验的给指导一下,谢谢!
Python code
import wx
class CurveArea(wx.Window):
def __init__(se……
这个问题很奇怪,开始运行程序是不会死的,但是吧窗口最小化,或者盖住窗口然后又显示,就会出现一直相应Paint事件的情况。
不知道是不是OnPaint响应函数的代码里面有什么因素导致了系统发送Paint事件从而导致死循环,有经验的给指导一下,谢谢!
Python code
import wx
class CurveArea(wx.Window):
def __init__(se……
作者: shyokou 发布时间: 2011-01-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28