Qt / PyQt:如何手动绘制插入符号?

时间:2011-12-09 10:45:34

标签: qt pyqt paint

我知道QWidget中的一个位置,我想画一个插入符号。

  1. 调用paint重绘整个小部件,我只想重绘那个包含插入符/字符的'box'。有没有办法告诉它不要删除整个小部件?

  2. 如何创建一个会导致它闪烁的计时器(即使程序正在执行其他操作)?

  3. 我希望手动完成,而不是通过QTextLayout。

1 个答案:

答案 0 :(得分:4)

QWidget有一个repaint()方法只重绘小部件的某个部分

QWidget.repaint (self, int x, int y, int w, int h)
QWidget.repaint (self, QRect)
QWidget.repaint (self, QRegion)

您可以创建一个定期触发的QTimer:

timer = QtCore.QTimer()
timer.timeout.connect(doBlinkMethod)
timer.start(1000) # every second

def doBlinkMethod():
    print "blah"

你也可以实现你的小部件自己的内置计时器,以便在内部对自己进行操作: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qobject.html#startTimer