You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

86 lines
2.1 KiB

from PyQt4 import QtCore
from PyQt4 import QtGui
def convert_image(img):
data = [0] * (320 * 240 * 2)
for x in range(320):
for y in range(240):
val = img.pixel(x, y)
data[2*(x * 240 + y)] = val >> 8
data[2*(x * 240 + y) + 1] = val & 0xff
return data
QtGui.QApplication.setGraphicsSystem("raster");
app = QtGui.QApplication(["-graphicssystem", "raster"])
img = QtGui.QImage(320, 240, QtGui.QImage.Format_RGB16)
class Fuck(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setAttribute(QtCore.Qt.WA_PaintOnScreen)
def paintEngine(self):
return img.paintEngine()
#def paintEvent(self, evt):
# evt.accept()
# self.render(img)
def logit(func):
def wrapped(*lols):
print "called"
return fund(*lols)
return wrapped
#QtGui.QWidget.paintEngine = lambda a: img.paintEngine()
w = QtGui.QWidget()
#w = Fuck()
w.resize(320,240)
l = QtGui.QVBoxLayout(w)
w.setLayout(l)
text1 = QtGui.QLabel("text1", w)
l.addWidget(text1)
text2 = QtGui.QLabel("text2", w)
l.addWidget(text2)
button1 = QtGui.QPushButton("Push me now", w)
l.addWidget(button1)
button2 = QtGui.QPushButton("Cancel this shit", w)
l.addWidget(button2)
w.render(img)
data = convert_image(img)
from logitech.g19 import G19
lg19 = G19()
lg19.reset()
lg19 = G19()
lg19.send_frame(data)
evtDownPress = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Down, QtCore.Qt.NoModifier)
evtDownRelease = QtGui.QKeyEvent(QtCore.QEvent.KeyRelease, QtCore.Qt.Key_Down, QtCore.Qt.NoModifier)
QtCore.QCoreApplication.postEvent(w, evtDownPress)
QtCore.QCoreApplication.postEvent(w, evtDownRelease)
w.render(img)
data = convert_image(img)
evtDownPress = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Tab, QtCore.Qt.NoModifier)
evtDownRelease = QtGui.QKeyEvent(QtCore.QEvent.KeyRelease, QtCore.Qt.Key_Tab, QtCore.Qt.NoModifier)
QtCore.QCoreApplication.postEvent(w, evtDownPress)
QtCore.QCoreApplication.postEvent(w, evtDownRelease)
# Xvfb :1 -screen 0 320x240x16 -fbdir /tmp/lala
# xwud -in /tmp/lala/Xvfb_screen0
# xwdtopnm