Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

书中案例8-3(双缓存绘图)代码疑似有误,QPixmap应该用深拷贝吧? #12

Open
GuoShaozheng opened this issue Jan 30, 2019 · 3 comments

Comments

@GuoShaozheng
Copy link

书中案例8-3(双缓存绘图)代码看意图是否以下此处需改为 深拷贝:

PyQt5/Chapter08/qt08_winDraw03.py

目前为:
# 将以前pix中的内容复制到tempPix中,保证以前的内容不消失
self.tempPix = self.pix

是否应改为 :
# 将以前pix中的内容复制到tempPix中,保证以前的内容不消失
self.tempPix = self.pix.copy(self.pix.rect())

否则按目前的形式感觉导致 tempPix 和 pix 引用(操作)的其实是同一块内存。

@wangx404
Copy link

看了一下id,确实不能直接赋值。

@linzhlalala
Copy link

你说的是对的
这里如果把8-1,8-2的move响应放回来, 就会发现根本没有缓冲
这一句改的用self.tempPix = QPixmap(self.pix) 也可以,
然后就和我们熟悉的拉个框框一样了,
不理解作者为啥要把好好的move响应删了

@masterwang22327
Copy link

直接把PyQt5/Chapter08/qt08_winDraw02.py中的mouseMoveEvent函数注释掉就不会有黑线重影产生,也不会有双缓存这个小节PyQt5/Chapter08/qt08_winDraw03.py。
不知道这一节目的是啥

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants