m0_63572190 2022-12-25 19:49 采纳率: 76.9%
浏览 28
已结题

关于#pyqt#的问题,如何解决?

通过pyqt5做一个圆形水波纹进度条,同时可以在qt desinger显示出来

  • 写回答

1条回答 默认 最新

  • 流比 2022-12-25 21:13
    关注
    
    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar
    from PyQt5.QtCore import Qt
    
    class CircleProgressBar(QProgressBar):
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setRange(0, 100)
            self.setAlignment(Qt.AlignCenter)
            self.setFormat("%p%")
    
        def paintEvent(self, event):
            painter = QPainter(self)
            painter.setRenderHint(QPainter.Antialiasing)
    
            # 绘制圆形进度条背景
            painter.save()
            painter.setPen(Qt.NoPen)
            painter.setBrush(self.palette().alternateBase())
            rect = self.rect().adjusted(1, 1, -1, -1)
            painter.drawEllipse(rect)
            painter.restore()
    
            # 绘制圆形进度条
            painter.save()
            painter.setPen(Qt.NoPen)
            brush = self.palette().highlight()
            value = self.value()
            start_angle = 90
            span_angle = -360 * value / 100
            painter.setBrush(brush)
            painter.drawPie(rect, start_angle * 16, span_angle * 16)
            painter.restore()
    
    app = QApplication(sys.argv)
    window = QWidget()
    window.setWindowTitle("Circle Progress Bar")
    
    progress_bar = CircleProgressBar(window)
    
    window.show()
    sys.exit(app.exec_())
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月20日
  • 创建了问题 12月25日

悬赏问题

  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂