作者sbrhsieh (sbr)
看板Python
标题Re: [问题] QPainter绘图疑问
时间Sat Feb 21 00:46:53 2009
※ 引述《k80092 (游)》之铭言:
: 参照范例所生成的方法是
: *.......
: self.paint = QtGui.QPainter()
: def paintEvent(self,Event):
: self.paint.begin(self)
: self.paint.setPen(QtCore.Qt.red)
: size = self.size()
: self.paint.setBrush(QtGui.QColor(10, 200, 2, 255))
: self.paint.drawRect(0, 0, 250, 150)
: self.paint.end()
: 但是不管怎麽用,画图似乎只能在paintEvent这个方法中使用
: 如果我想另开一个方法在我呼叫的时候才进行视窗上的描绘,
: 请问我应该怎麽撰写才好?烦请指教了..Orz
没有用过 QPainter.
但我想你应该是设计成 paintEvent 专注於负责依照元件的状态去绘制特定的
外观. 而呼叫某个方法是改变元件的状态并令元件重绘自己.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.133.197
1F:推 k80092:目前就卡在不知如何重绘其原有图形,也就是说当我执行过一 02/21 00:54
2F:→ k80092:次paintEvent後就无法再执行第二次,想知道怎麽执行第二次 02/21 00:55
paintEvent 是 framework 在适当的时候去执行(callback)使你的 widget 能够
绘制自己的外观.
如果元件发现自己的状态有变需要更新外观, 可以发出 repaint 的要求:
void QWidget::repaint()
http://doc.trolltech.com/3.3/qwidget.html#repaint-2
※ 编辑: sbrhsieh 来自: 218.173.133.197 (02/21 01:18)