1
私はファイルを収集して後でコピーするというタスクがあるとしましょう。 QProgressBarを収集すると、不明確な「ビジー」状態が表示されます。その後、そのプロセスは、収集されたファイルをコピーして進行状況を表示するために移動しています。 問題は、私がそのうちのどれをでも行うことができますが、連続プロセスで一緒にはできないことです。 DownはPySideの小さなコードで、QButton 1と2を押すことでこの動作を示しますが、連続タスクでは表示されません。助けてください。QProgressBarで「ビジー」モードから標準プログレスモードに移行するには?
import sys, time
from PySide.QtGui import *
from PySide.QtCore import *
class WidgetWithBar(QWidget):
def __init__(self):
super(WidgetWithBar, self).__init__()
self.progress = QProgressBar(self)
self.progress . setAlignment(Qt.AlignJustify)
self.progress . setValue(0)
button1 = QPushButton("Waiting for Job", self)
button1 . clicked.connect(self.wait)
button2 = QPushButton("Doing Job", self)
button2 . clicked.connect(self.go)
self.layout = QVBoxLayout()
self.layout.addWidget(self.progress)
self.layout.addWidget(button1)
self.layout.addWidget(button2)
self.setLayout(self.layout)
def wait(self):
self.progress.setRange(0,0)
# -- this two lines to comment out
#time.sleep(2)
#self.go()
# -- EOLines to comment out
def go(self):
n = 20
self.progress.setRange(0,n)
# DO SOMETHING TO SHOW THE PROGRESS
for t in range(n):
time.sleep(.1)
self.progress.setValue(t+1)
def main():
app = QApplication(sys.argv)
w = WidgetWithBar()
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
私は最初のボタンを押すと、両方の機能を起動するには、上部の2行をコメントアウトするかどうので、プログレスバーがすべてでは「ビジー」モードを示していないでしょう!