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_())

	

PyQt4 Second Python PyQt4 Fourth