hab das Problem, wenn ich diesen Thread starte, welcher immer BIlder empfängt und diese in einem neuen Dialog darstellen soll. Jedoch bekomm ich immer den Error: "QObject::killTimers: timers cannot be stopped from another thread"
Code: Alles auswählen
from PyQt4 import QtGui, QtCore, Qt
import socket, sys
class show_pics(QtCore.QThread):
status = True
#lock = QtCore.QReadWriteLock()
def __init__(self):
import tempfile
self.screen = QtGui.QDialog()
self.screen_view = QtGui.QGraphicsView(self.screen)
self.screen.setWindowTitle(QtGui.QApplication.translate("Dialog", "Screen", None, QtGui.QApplication.UnicodeUTF8))
self.scene = QtGui.QGraphicsScene(self.screen)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("", 50001))
server.listen(1)
self.sock, self.ip = server.accept()
QtCore.QThread.__init__(self)
self.screen.show()
self.screen_view.show()
def run(self):
while True:
#if screen_cap.status == False:
# break
size = int(self.sock.recv(1024))
print size
file = self.sock.recv(size)
f = open("zwischen.jpg", "wb")
f.write(file)
f.close()
pic = QtGui.QPixmap("zwischen.jpg")
size = pic.rect()
size = pic.rect()
self.screen.resize(size.width(), size.height())
self.screen_view.setGeometry(size)
self.scene.clear()
self.scene.addPixmap(pic)
self.screen_view.setScene(self.scene)
app = QtGui.QApplication(sys.argv)
g = show_pics()
g.start()
sys.exit(app.exec_())
Ach und nochmal ne Frage, ist es möglich dass Pixmap das Bild aus einem Tempfile laden kann? Wenn ich einfach QtGui.QPixmap(tmp), in der das Bild gespeichert war, genommen habe, gings nicht. Oder gibt es eine Möglichkeit das Empfangege direkt in eine Pixmap umzuwandeln?
Danke schonmal

gruß