0
私はpyqt5で進行状況バーを作成しようとしていますが、プログレスバーのウィンドウを開くと空白のウィンドウが表示されます。空白を取得するプログレスバーウィンドウpyqt 5
UIから生成されたプログレスバーのコードされる:Ui_dlg_progressがUIから生成
:
をPyQt5インポートQtCore、QtGuiから、QtWidgets
class Ui_dlg_progress(object):
def setupUi(self, dlg_progress):
dlg_progress.setObjectName("dlg_progress")
dlg_progress.resize(376, 91)
dlg_progress.setSizeGripEnabled(True)
self.gridLayout = QtWidgets.QGridLayout(dlg_progress)
self.gridLayout.setObjectName("gridLayout")
self.label = QtWidgets.QLabel(dlg_progress)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.label_num_folders = QtWidgets.QLabel(dlg_progress)
self.label_num_folders.setObjectName("label_num_folders")
self.gridLayout.addWidget(self.label_num_folders, 0, 1, 1, 1)
self.label_text = QtWidgets.QLabel(dlg_progress)
self.label_text.setObjectName("label_text")
self.gridLayout.addWidget(self.label_text, 0, 2, 1, 1)
self.label_total_folders = QtWidgets.QLabel(dlg_progress)
self.label_total_folders.setObjectName("label_total_folders")
self.gridLayout.addWidget(self.label_total_folders, 0, 3, 1, 1)
self.progressBar = QtWidgets.QProgressBar(dlg_progress)
self.progressBar.setProperty("value", 0)
self.progressBar.setObjectName("progressBar")
self.gridLayout.addWidget(self.progressBar, 1, 0, 1, 4)
self.retranslateUi(dlg_progress)
QtCore.QMetaObject.connectSlotsByName(dlg_progress)
def retranslateUi(self, dlg_progress):
_translate = QtCore.QCoreApplication.translate
dlg_progress.setWindowTitle(_translate("dlg_progress", "Processing"))
self.label.setText(_translate("dlg_progress", "Processing:"))
self.label_num_folders.setText(_translate("dlg_progress", "0"))
self.label_text.setText(_translate("dlg_progress", "folders of a total of: "))
self.label_total_folders.setText(_translate("dlg_progress", "1"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
dlg_progress = QtWidgets.QDialog()
ui = Ui_dlg_progress()
ui.setupUi(dlg_progress)
dlg_progress.show()
ProgressBar.py - コールUi_dlg_progress
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QDialog
from Ui_progress_bar import Ui_dlg_progress
class dlg_progress(QDialog, Ui_dlg_progress):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(dlg_progress, self).__init__(parent)
self.setupUi(self)
self.show()
そして、プログレスバーと呼ばれるメインコード:そうでなければ、あなたはsource
、生成の長さをテストする必要があります
for subdir in subdirs:
#Number of processed folders
proc_folders += 1
prog.progressBar.setValue(proc_folders)
prog.label_num_folders.setText(str(proc_folders))
QApplication.processEvents()
:
def main():
subdirs = [f for f in source.iterdir() if f.is_dir()]
if len(subdirs) == 0:
return -1
prog = dlg_progress()
#Actual number of folders procecessed
proc_folders = 0
prog.progressBar.setValue(proc_folders)
prog.label_num_folders.setText(str(proc_folders))
prog.label_total_folders.setText(str(len(subdirs)))
prog.progressBar.maximum = len(subdirs)
for subdir in subdirs:
process of the folders
#Number of processed folders
proc_folders += 1
prog.setValue(proc_folders)
prog.label_num_folders.setText(str(proc_folders))
QApplication.processEvents()
return 0