Python QPixmap/QPainter显示黑色窗口背景
我遵循Martin Fitzpatrick的PyQt5书中的一个例子。当我运行以下代码时,背景为黑色且未绘制线条:Python QPixmap/QPainter显示黑色窗口背景,python,pyqt5,qpainter,qpixmap,Python,Pyqt5,Qpainter,Qpixmap,我遵循Martin Fitzpatrick的PyQt5书中的一个例子。当我运行以下代码时,背景为黑色且未绘制线条: import sys from PyQt5 import QtCore, QtGui, QtWidgets, uic from PyQt5.QtCore import Qt class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__()
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtCore import Qt
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.label = QtWidgets.QLabel()
canvas = QtGui.QPixmap(400, 300)
self.label.setPixmap(canvas)
self.setCentralWidget(self.label)
self.draw_something()
def draw_something(self):
painter = QtGui.QPainter(self.label.pixmap())
painter.drawLine(10, 10, 300, 200)
painter.end()
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
预期结果在左侧:
默认情况下,QPixmap使用的内存不会按效率进行清理,因此其字节不会发生更改,如下所示: QPixmap::QPixmapint width,int height构造一个具有 给定宽度和高度。如果宽度或高度为零,则为空 构建了pixmap。 警告:这将使用未初始化的数据创建QPixmap。呼叫 填充以在绘制前使用适当的颜色填充像素贴图 用油漆工把它涂上 重点矿山 解决方案是使用填充设置背景色:
canvas = QtGui.QPixmap(400, 300)
canvas.fill(QtGui.QColor("white"))
默认情况下,QPixmap使用的内存不会按效率进行清理,因此其字节不会发生更改,如下所示: QPixmap::QPixmapint width,int height构造一个具有 给定宽度和高度。如果宽度或高度为零,则为空 构建了pixmap。 警告:这将使用未初始化的数据创建QPixmap。呼叫 填充以在绘制前使用适当的颜色填充像素贴图 用油漆工把它涂上 重点矿山 解决方案是使用填充设置背景色:
canvas = QtGui.QPixmap(400, 300)
canvas.fill(QtGui.QColor("white"))