def __init__(self, parent=None):
super().__init__(parent)
width, height = 800, 800
self.setGeometry(width, height, width, height)
# configs, can be changed at runtime
self.circle_line_color = Qt.gray
self.crosshair_line_color = Qt.gray
self.text_label_color = Qt.darkGreen
self.measured_distances_color = Qt.green
self.circle_count = 10
self.dot_width = 10
self.line_width = 1
self.distance_measurement_angle = 15
self.measurement_angle = 10 # degrees that one sensor covers
self.fade_out_time = 4 # older measurements will fade out over this time
self.add_text_labels = False
# data
self.measurements = []
self.added_time = dict() # measurement -> timestamp
# drawing timer
self.timer = QTimer()
self.timer.setInterval(80)
self.timer.timeout.connect(self.draw_radar)
self.timer.start()
# internal canvas setup
self.layout = QHBoxLayout()
self.setLayout(self.layout)
self.scene = QGraphicsScene()
self.scene.setSceneRect(0, 0, width, height)
self.canvas = QGraphicsView()
self.canvas.setRenderHint(QPainter.Antialiasing)
self.canvas.setFixedSize(width, height)
self.canvas.setAlignment(Qt.AlignLeft)
self.canvas.setScene(self.scene)
self.canvas.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.canvas.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.layout.addWidget(self.canvas)
# initial rendering
self.draw_radar()
评论列表
文章目录