2017-05-05 73 views
0

我注意到当我在QLabel中使用QPixmap时,看似随机的像素(可能基于内存)被写入到QPixmap中。为什么会这样,以及如何解决这个问题?这只是我的电脑有问题吗? (我使用的是Windows 7,顺便说一句)在QPixmap上绘制的奇怪像素

import sys 

from PyQt5.QtGui import QImage, QPixmap 
from PyQt5.QtWidgets import QApplication, QLabel 

class BugTest(QLabel): 
    def __init__(self): 
     super().__init__() 
     self.setPixmap(QPixmap(200, 200)) 
     self.show() 

app = QApplication(sys.argv) 
widget = BugTest() 
app.exec_() 
+0

'functools'可能会覆盖其他地方导入的名称。 PEP8表示,系统库进口应该高于所有其他进口。如果你这样做,看看是否有相同的行为。 –

+0

@aryamccarthy没有,仍然有类似的行为...虽然我注意到更少的像素被绘制。 – Poolala

+0

使用PyQt4时,我仍然看到functools导入被注释掉时绘制的像素。你确定没有人被吸引?他们似乎在位置上有所不同,有时他们很难看出他们是否在窗口边缘。 – BrenBarn

回答

1

The documentation说:

警告:这将创建一个未初始化的数据的QPixmap。在用QPainter绘制它之前,调用fill()以使用适当的颜色填充像素图。

这意味着它可能包含垃圾。如果你想让它全黑,请用黑色填充。