是这样,有一个PushButton,我想在按下后触发一个函数,将页面内的某100个点绘制成红色。
qp = QtGui.QPainter()
qp.begin(self)
qp.setPen(QtGui.QColor(168, 34, 3))
qp.setFont(QtGui.QFont(*Decorative*, 10))
qp.setPen(QtCore.Qt.red)
size = self.size()
import random
for i in range(100):
x = random.randint(1, size.width()-1)
y = random.randint(1, size.height()-1)
qp.drawPoint(x, y)
qp.end()
如果我将上述代码放到paintEvent函数内部,即重构该函数,在窗口初始化或者变化的过程中,是可以正常绘制出点的。但是,如果我将上述代码放置在我的slot函数中,IDE提示QPainter::drawPoints: Painter not active,难道是在静止状态(窗口没有初始化或者拉伸)时,painter是不被激活的么?有没有什么办法在按下按钮后的slot函数中激活相应的painter?谢谢。
qp = QtGui.QPainter()
qp.begin(self)
qp.setPen(QtGui.QColor(168, 34, 3))
qp.setFont(QtGui.QFont(*Decorative*, 10))
qp.setPen(QtCore.Qt.red)
size = self.size()
import random
for i in range(100):
x = random.randint(1, size.width()-1)
y = random.randint(1, size.height()-1)
qp.drawPoint(x, y)
qp.end()
如果我将上述代码放到paintEvent函数内部,即重构该函数,在窗口初始化或者变化的过程中,是可以正常绘制出点的。但是,如果我将上述代码放置在我的slot函数中,IDE提示QPainter::drawPoints: Painter not active,难道是在静止状态(窗口没有初始化或者拉伸)时,painter是不被激活的么?有没有什么办法在按下按钮后的slot函数中激活相应的painter?谢谢。