zoukankan      html  css  js  c++  java
  • PyQt5自定义组件之信号强度

    此控件用于展示信号强度.

    效果如下:

    from PyQt5.QtWidgets import QWidget
    from PyQt5.QtGui import QPainter, QPen
    from PyQt5.Qt import Qt
    
    
    class ShowSignals(QWidget):
        # 显示信号强度的控件
        def __init__(self, parent=None):
            super(ShowSignals, self).__init__(parent)
    
        def paintEvent(self, QPaintEvent):
            # 模拟信号强度(0-100)
            import random
            signal_num = random.randint(0, 100)
            painter = QPainter(self)
            painter.setRenderHint(QPainter.Antialiasing)  # 绘制图像反锯齿
            painter.begin(self)
            self.draw(painter, signal_num)
            painter.end()
    
        def draw(self, painter, signal_num):
            if signal_num == 0:
                pen_red = QPen(Qt.red, 4, Qt.SolidLine)
                painter.setPen(pen_red)
                painter.drawLine(10, 30, 30, 10)
                painter.drawLine(10, 10, 30, 30)
            else:
                green_count = signal_num // 25 + 1
                white_count = 4 - green_count
                pen_white = QPen(Qt.white, 6, Qt.SolidLine)
                pen_green = QPen(Qt.green, 6, Qt.SolidLine)
                painter.setPen(pen_green)
                for i in range(green_count):
                    painter.drawLine(10 * (i + 1), 30, 10 * (i + 1), 25 - i * 5)
                painter.setPen(pen_white)
                for j in range(white_count):
                    painter.drawLine(10 * (green_count + j + 1), 30, 10 * (green_count + j + 1), 25 - (green_count + j) * 5)
    
  • 相关阅读:
    第几天
    计算一个歌手的平均分
    将单词的首字母改为大写
    两数求和
    做一板1寸照片
    Filter过滤器
    AJAX
    EL表达式
    session存取
    默认的前进,刷新,后退,代码
  • 原文地址:https://www.cnblogs.com/zyyhxbs/p/12665137.html
Copyright © 2011-2022 走看看