FLX*_*FLX 5 python qt multithreading pyqt qpixmap
我正在构建一个音乐播放器,用SqueezePlay检查状态,SqueezePlay是一个SqueezeBox控制器应用程序.简而言之,我通过使用线程来检查Squeezeplay的状态,持续5秒.如果歌曲标题改变了,我让它更新标签(Qlabel,专辑图片(QPixmap)等等.但是,当我要求它通过线程更新它时,我得到在GUI线程之外使用pixmaps是不安全的.
如何进行线程处理但仍设置QPixmap?
示例代码:
#self.sq.getArtwork() returns variable with the image
coverArt = self.sq.getArtwork()
coverPixMap = QtGui.QPixmap()
coverPixMap.loadFromData(coverArt)
self.albumArt.setPixmap(coverPixMap)
非常感谢!
更新: 我尝试了以下Emit,但它不起作用,有人可以看看我做错了什么?
def setNewArtwork(self, image):
    coverPixMap = QtGui.QPixmap()
    coverPixMap.convertFromImage(image)
    icon = QtGui.QIcon(coverPixMap)
    item.setIcon(icon)
def getNewArtwork(self):
    coverArt = self.sq.getArtwork()
    icon = QtGui.QImage(coverArt)
    self.emit(QtCore.SIGNAL('setNewArtwork(QImage)'), icon)