pyqt5中在按下一个按钮后出现一个弹窗,里面有一个进度条,显示运行进度
时间: 2024-02-16 17:04:07 浏览: 149
double_windows_example.zip_eitherf5p_pyqt5_pyqt5按钮_python gui_th
您可以使用PyQt5中的QProgressDialog来实现这个功能。您需要在按钮的槽函数中创建一个QProgressDialog对象,并设置其标题、显示信息、最小值和最大值。然后在运行耗时的任务中使用setValue()函数来更新进度条的值。
下面是一个示例代码:
```python
from PyQt5.QtCore import Qt, QThread
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressDialog
class Worker(QThread):
def run(self):
for i in range(101):
self.progress.emit(i)
self.msleep(50)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Progress Dialog')
self.btn = QPushButton('Start', self)
self.btn.move(50, 50)
self.btn.clicked.connect(self.showDialog)
self.show()
def showDialog(self):
dialog = QProgressDialog(self)
dialog.setWindowTitle('Working...')
dialog.setLabelText('Please wait...')
dialog.setRange(0, 100)
dialog.setModal(True)
worker = Worker()
worker.progress.connect(dialog.setValue)
worker.start()
dialog.exec_()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
运行该程序,单击按钮后将显示一个进度对话框,它将显示一个从0到100的进度条。当进度条达到100时,对话框将关闭。
阅读全文