私はプログラムが多数のスレッドを実行しており、そのうちの1つはインターフェイスを制御し、もう1つは数秒ごとにいくつかの機能を起動します。ここでプログレスバーwith pyqt
X Error: RenderBadGlyphSet (invalid GlyphSet parameter) 165
Extension: 150 (RENDER)
Minor opcode: 25 (RenderCompositeGlyphs32)
Resource id: 0x25
X Error: RenderBadGlyphSet (invalid GlyphSet parameter) 165
Extension: 150 (RENDER)
Minor opcode: 25 (RenderCompositeGlyphs32)
Resource id: 0x25
X Error: RenderBadGlyphSet (invalid GlyphSet parameter) 165
Extension: 150 (RENDER)
Minor opcode: 25 (RenderCompositeGlyphs32)
Resource id: 0x25
X Error: RenderBadGlyphSet (invalid GlyphSet parameter) 165
Extension: 150 (RENDER)
Minor opcode: 25 (RenderCompositeGlyphs32)
Resource id: 0x25
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
は私のコードです:私は、タイミングスレッドが、私は、私が手にないとき、プログレスバーが買い更新したい
#!/usr/bin/python
from PyQt4 import QtCore, QtGui
import time
class WTrainning(wMeta.WMeta, QtGui.QWidget):
def __init__(self):
super(WTrainning, self).__init__()
def createUI(self):
...
self.progressBar = QtGui.QProgressBar(self)
self.progressBar.setGeometry(QtCore.QRect(30, 70, 481, 23))
self.progressBar.setProperty("value", 24)
self.progressBar.setObjectName("progressBar")
QtCore.QObject.connect(self.progressBar, QtCore.SIGNAL("valueChanged(int)"), self.progressBar.setValue)
...
def modifyBarr(self, number):
self.progressBar.setValue(number)
class Crono(QtCore.QThread):
def __init__(self, parent):
QtCore.QThread.__init__(self,parent)
def checkStatus(self):
for x in range(1,101):
self.wtobject.modifyBarr(x)
time.sleep(1)
私は信号(新旧バージョン)を試みたと思いますし、 UI更新用の専用スレッドを作成しても、何も機能しませんでした。私は、あなたがこのようなクロノオブジェクトのための信号を定義する必要がパイソン2.6.6および4.7.4 PyQtは
に独自のSLOTにプログレスバーのSIGNAL
valueChanged
を接続してあります。あなたは間違いなくこのために信号とスロットを使うべきです。 – Dikei本当に信号とスロットを使用する必要があります。シグナルで試したコードを提供できますか? –
QtCore.QObject.connect(self.progressBar、QtCore.SIGNAL( "valueChanged(int)")、self.progressBar.setValue) – amusero