これは私がPyQTで遭遇した最大の迷惑である必要があります:私は自分のアプリケーションのサムネイルスレッドを一緒にハックしました(私はたくさんの大きな画像をサムネイル化する必要があります)、そしてそれはうまくいくようです(そしてそれはほとんどうまくいきます)。私の主な問題はSIGNAL
、スレッドからを送信するたびにこのエラーメッセージが表示されることです。
QPixmap: It is not safe to use pixmaps outside the GUI thread
これを回避する方法がわかりません。QIcon
を通過させようとしましSIGNAL
たが、それでも同じエラーが発生します。それが役立つ場合は、これを処理するコードブロックを次に示します。
Thumbnailer
クラス:
class Thumbnailer(QtCore.QThread):
def __init__(self, ListWidget, parent = None):
super(Thumbnailer, self).__init__(parent)
self.stopped = False
self.completed = False
self.widget = ListWidget
def initialize(self, queue):
self.stopped = False
self.completed = False
self.queue = queue
def stop(self):
self.stopped = True
def run(self):
self.process()
self.stop()
def process(self):
for i in range(self.widget.count()):
item = self.widget.item(i)
icon = QtGui.QIcon(str(item.text()))
pixmap = icon.pixmap(72, 72)
icon = QtGui.QIcon(pixmap)
item.setIcon(icon)
スレッドを呼び出す部分(一連の画像がリストボックスにドロップされたときに発生します):
self.thread.images.append(f)
item = QtGui.QListWidgetItem(f, self.ui.pageList)
item.setStatusTip(f)
self.thread.start()
私はGUI初心者なので、この種のものをどのように処理するかわかりません;)
ありがとうございます。