2012-02-16 5 views
-4

Я работаю над программой, и я хочу подключить QProgressBar с помощью функции. Пока функция выполняется, QProgressBar должен рассчитывать до тех пор, пока функция не будет выполнена. Тогда QProgressBar тоже нужно сделать.Как вы подключаете QProgressBar с функцией?

+4

Возможно, вы должны принять больше ответов на вопросы, которые вы задавали в прошлом. Вы ответили только на 9% вопросов, которые вы задали. Это не вдохновит других помочь вам. – Wes

+2

Прочитайте документацию QProgressBar, это совершенно ясно, как ее использовать. https://developer.qt.nokia.com/doc/qt-4.8/qprogressbar.html#details – cmannett85

ответ

1

Этот образец даст вам простое представление о прогрессе. Ни в коем случае это не является эффективным или элегантным. Это просто рабочее решение, которое я придумал.

#!/usr/bin/python 

import os, sys 

from time import sleep 

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

app = QApplication(sys.argv) 

def copyFile() : 
    cpBtn.setDisabled(True) 
    for i in range(0, 100) : 
     # File Copy Code 
     # sleep(0.1) is instead of the file copy code 
     sleep(0.1) 
     pb.setValue(i + 1) 
     qApp.processEvents() 

    cpBtn.setEnabled(True) 
    pb.reset() 

fcpDlg = QDialog() 

cpBtn = QPushButton(fcpDlg) 
cpBtn.setText("&Copy") 
cpBtn.clicked.connect(copyFile) 
cpBtn.setFixedWidth(72) 

pb = QProgressBar() 
pb.setMinimumWidth(300) 
pb.setRange(0, 100) 

lyt = QVBoxLayout(fcpDlg) 
lyt.addWidget(pb) 
lyt.addWidget(cpBtn) 

fcpDlg.setLayout(lyt) 

fcpDlg.show() 

sys.exit(app.exec_())