mousePressEvent
位置から最新のマウスまで線を引く必要があるシナリオを作成しようとしています。つまり、からmoveposition
呼び出す必要があります。可能ですか?paintEvent
mousePressEvent
したがって、シナリオは次のとおりです。
1) paintEvent を使用して、黒色で 2 つの円を描画します
2) マウス プレス イベントがイベントを待機し、プレスが発生した場合、円の色を緑に変更したいのですが、可能ですか?
import sys, random
from PyQt4 import QtGui, QtCore
class P(QtGui.QWidget):
def __init__(self):
super(P, self).__init__()
self.initUI()
def initUI(self):
q=self.frameGeometry()
cp=QtGui.QDesktopWidget().availableGeometry().center()
q.moveCenter(cp)
self.setFixedSize(300,300)
self.setWindowTitle('Points')
self.show()
def mousePressEvent(self, QMouseEvent):
cursor =QtGui.QCursor(self)
position = QMouseEvent.pos()
xpos = QMouseEvent.x()
ypos = QMouseEvent.y()
#Trial ??????
q = QtGui.QPainter()
q.drawLine(30,30,90,90)
print QMouseEvent.pos()
def mouseReleaseEvent(self, QMouseEvent):
cursor =QtGui.QCursor()
print cursor.pos()
def paintEvent(self,e):
qp = QtGui.QPainter()
qp.begin(self)
E1 = qp.drawEllipse(30,30,20,20)
E2 = qp.drawEllipse(30,130,20,20)
def main():
app = QtGui.QApplication(sys.argv)
ex = P()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
簡単に言えば、あるイベントを別のイベントから呼び出すことができるか、つまり、マウス プレス イベントからペイント イベントを呼び出すことができるかを知る必要があります。