PyQt5 怎么用循环创建16个进度条组件,每个进度条都是独立的

要用循环在 PyQt5 中创建 16 个独立的进度条组件,可以将每个进度条实例存储在一个列表或字典中,从而保持它们的独立性。每个进度条可以被单独控制,不会相互影响。

以下是使用 QVBoxLayout 将 16 个独立的 QProgressBar 添加到布局中的示例代码。每个进度条的值都可以独立控制。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QVBoxLayout, QPushButton
from PyQt5.QtCore import Qt

class ProgressBarWindow(QWidget):
    def __init__(self, parent=None):
        super(ProgressBarWindow, self).__init__(parent)

        # 创建一个垂直布局
        self.layout = QVBoxLayout()

        # 创建一个列表来存储进度条
        self.progress_bars = []

        # 循环创建 16 个独立的进度条
        for i in range(16):
            progress_bar = QProgressBar(self)
            progress_bar.setMinimum(0)
            progress_bar.setMaximum(100)
            progress_bar.setValue(0)  # 初始进度为 0
            progress_bar.setAlignment(Qt.AlignCenter)  # 让进度值显示居中
            self.progress_bars.append(progress_bar)  # 将进度条添加到列表中
            self.layout.addWidget(progress_bar)  # 将进度条添加到布局中

        # 添加一个按钮来更新所有进度条
        self.update_button = QPushButton("Update Progress Bars", self)
        self.update_button.clicked.connect(self.update_progress_bars)
        self.layout.addWidget(self.update_button)

        # 设置窗口的布局
        self.setLayout(self.layout)

    def update_progress_bars(self):
        # 独立更新每个进度条的值
        for i, progress_bar in enumerate(self.progress_bars):
            progress_value = (i + 1) * 5  # 示例:每个进度条的进度是不同的
            progress_bar.setValue(progress_value)

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # 创建主窗口并添加进度条
    main_window = ProgressBarWindow()
    main_window.setWindowTitle("16 Independent Progress Bars")
    main_window.resize(300, 600)

    # 显示窗口
    main_window.show()

    sys.exit(app.exec_())
  • progress_bars 列表:用于存储每个 QProgressBar 实例,从而确保它们是独立的。通过存储在列表中,你可以轻松访问每个进度条。
  • setValue() 方法:你可以通过 setValue() 方法独立设置每个进度条的进度值。
  • update_button 按钮:点击该按钮时会调用 update_progress_bars 方法,示例中通过 (i + 1) * 5 来设置不同的进度值,但你可以根据实际情况独立更新每个进度条的值。
  • 布局管理:使用 QVBoxLayout 来垂直排列进度条和按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值