📜  PyQt5 - 试管进度条(1)

📅  最后修改于: 2023-12-03 15:18:47.231000             🧑  作者: Mango

PyQt5 - 试管进度条

本文将介绍如何使用 PyQt5 创建一个试管进度条(ProgressBar),用于显示任务的进度。

安装 PyQt5

在开始之前,我们需要安装 PyQt5。如果你已经安装了 Python,可以通过以下命令来安装 PyQt5:

pip install pyqt5

如果你想使用 Qt Designer 来创建界面,还需要安装 PyQt5-tools:

pip install pyqt5-tools
创建界面

我们首先需要创建一个界面,将试管进度条(ProgressBar)放在界面上。

这可以通过手动编写代码,也可以使用 Qt Designer 来创建。

以下是一个手动编写代码的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton

class ProgressBar(QWidget):
    def __init__(self):
        super().__init__()

        # 创建一个进度条
        self.progress_bar = QProgressBar(self)
        self.progress_bar.setGeometry(50, 50, 200, 25)

        # 创建一个按钮
        self.button = QPushButton(self)
        self.button.setText("Start")
        self.button.move(50, 100)
        self.button.clicked.connect(self.on_click)

        self.show()

    def on_click(self):
        self.progress_bar.setValue(0)

        for i in range(101):
            self.progress_bar.setValue(i)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ProgressBar()
    sys.exit(app.exec_())

这个例子创建了一个窗口、一个进度条和一个按钮。当按下按钮时,进度条将从 0 开始逐渐增加,直到达到 100。

下面是一个使用 Qt Designer 创建界面的例子:

  1. 启动 Qt Designer;
  2. 新建一个窗口控件;
  3. 向窗口控件中添加进度条控件和按钮控件;
  4. 保存窗口控件为 progress_bar.ui 文件。

在这个例子中,我们使用了 Designer 生成的 Python 代码。使用 Designer 生成的代码可以极大地简化 UI 的创建。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
from PyQt5.uic import loadUi

class ProgressBar(QWidget):
    def __init__(self):
        super().__init__()

        # 加载 UI
        loadUi('progress_bar.ui', self)

        # 绑定按钮事件
        self.button.clicked.connect(self.on_click)

        self.show()

    def on_click(self):
        self.progress_bar.setValue(0)

        for i in range(101):
            self.progress_bar.setValue(i)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ProgressBar()
    sys.exit(app.exec_())
更新进度

现在我们已经创建了一个试管进度条,接下来我们需要更新进度条的值。

在 PyQt5 中,进度条控件 QProgressBar 提供了 setValue() 方法,在调用这个方法时,进度条的值将被更新。

下面是一个示例程序,在按下按钮时,进度条将逐渐增加,直到值为 100。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton

class ProgressBar(QWidget):
    def __init__(self):
        super().__init__()

        # 创建一个进度条
        self.progress_bar = QProgressBar(self)
        self.progress_bar.setGeometry(50, 50, 200, 25)

        # 创建一个按钮
        self.button = QPushButton(self)
        self.button.setText("Start")
        self.button.move(50, 100)
        self.button.clicked.connect(self.on_click)

        self.show()

    def on_click(self):
        self.progress_bar.setValue(0)

        for i in range(101):
            self.progress_bar.setValue(i)
    
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ProgressBar()
    sys.exit(app.exec_())
总结

在本文中,我们介绍了如何使用 PyQt5 创建试管进度条,以及如何更新进度条的值。

如果你对 PyQt5 感兴趣,可以继续阅读以下文章:

  • PyQt5 - 文本编辑器
  • PyQt5 - 树形控件
  • PyQt5 - 图形界面的事件处理