62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
from testclasses import *
|
|
from PyQt4 import QtGui, QtCore
|
|
import sys, array
|
|
from cStringIO import StringIO
|
|
|
|
class JGUIWidget(QtGui.QWidget):
|
|
def __init__(self, width, height, parent=None):
|
|
super(JGUIWidget, self).__init__(parent)
|
|
self.surf = TestSurface([width, height])
|
|
self.setGeometry(0,0, width, height)
|
|
self.width = width
|
|
self.height = height
|
|
self.setWindowTitle("JGUI Qt")
|
|
redrawTimer = QtCore.QTimer(self)
|
|
self.connect(redrawTimer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("update()"))
|
|
redrawTimer.start(1000/60)
|
|
|
|
self.paintSurface = QtGui.QLabel(self)
|
|
self.paintSurface.setGeometry(0, 0, width, height)
|
|
self.paintSurface.show()
|
|
|
|
def mousePressEvent(self, event):
|
|
if event.button() == QtCore.Qt.LeftButton:
|
|
self.surf.inject_mouse_down('mouse-left')
|
|
if event.button() == QtCore.Qt.RightButton:
|
|
self.surf.inject_mouse_down('mouse-right')
|
|
if event.button() == QtCore.Qt.MiddleButton:
|
|
self.surf.inject_mouse_down('mouse-middle')
|
|
|
|
def mouseReleaseEvent(self, event):
|
|
if event.button() == QtCore.Qt.LeftButton:
|
|
self.surf.inject_mouse_up('mouse-left')
|
|
if event.button() == QtCore.Qt.RightButton:
|
|
self.surf.inject_mouse_up('mouse-right')
|
|
if event.button() == QtCore.Qt.MiddleButton:
|
|
self.surf.inject_mouse_up('mouse-middle')
|
|
|
|
def resizeEvent(self, event):
|
|
size = event.size()
|
|
self.width = size.width()
|
|
self.height = size.height()
|
|
self.paintSurface.setGeometry(0, 0, self.width, self.height)
|
|
self.surf.notify_window_resize(size.width(), size.height())
|
|
|
|
def eventFilter(self, source, event):
|
|
if event.type() == QtCore.QEvent.MouseMove:
|
|
pos = event.pos()
|
|
self.surf.inject_mouse_position([pos.x(), pos.y()])
|
|
return QtGui.QMainWindow.eventFilter(self, source, event)
|
|
|
|
def paintEvent(self, event):
|
|
self.surf.draw()
|
|
img = QtGui.QImage(self.surf.csurface.get_data(), self.width, self.height, QtGui.QImage.Format_ARGB32)
|
|
self.paintPixmap = QtGui.QPixmap.fromImage(img)
|
|
self.paintSurface.setPixmap(self.paintPixmap)
|
|
|
|
if __name__ == "__main__":
|
|
app = QtGui.QApplication(sys.argv)
|
|
widget = JGUIWidget(800, 600)
|
|
widget.show()
|
|
app.installEventFilter(widget)
|
|
sys.exit(app.exec_())
|