Home >>
Python >> PyQt4 Third
■PyQt4でのマウス入力・キー入力
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MouseKeySample(QWidget):
startx = 0
starty = 0
endx = 0
endy = 0
pressed = False
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setWindowTitle( "Mouse Key Sample")
self.resize( 300, 300)
def paintEvent(self, event):
paint = QPainter()
paint.begin(self)
paint.setPen(Qt.red)
rect = QRect(self.startx, self.starty, self.endx-self.startx, self.endy-self.starty)
#paint.drawEllipse( rect )
rectf = QRectF( rect )
path = QPainterPath()
path.addEllipse( rectf )
paint.fillPath(path, QBrush(Qt.red))
paint.end()
def mousePressEvent(self, event):
self.startx = self.endx = event.x()
self.starty = self.endy = event.y()
self.pressed = True
self.update()
def mouseReleaseEvent(self, event):
self.pressed = False
self.update()
def mouseMoveEvent(self, event):
if self.pressed:
self.endx = event.x()
self.endy = event.y()
self.update()
def keyPressEvent(self, event):
key = event.key()
if key == Qt.Key_Right:
self.startx += 10
self.endx += 10
self.update()
elif key == Qt.Key_Left:
self.startx -= 10
self.endx -= 10
self.update()
elif key == Qt.Key_Up:
self.starty -= 10
self.endy -= 10
self.update()
elif key == Qt.Key_Down:
self.starty += 10
self.endy += 10
self.update()
def keyReleaseEvent(self, event):
pass
app = QApplication(sys.argv)
sample = MouseKeySample()
sample.show()
sys.exit(app.exec_())