Adalm1000_Logger/gui_main.py
Vincent Hanewinkel b2406ed037 test
2025-08-14 22:56:00 +02:00

43 lines
1.5 KiB
Python

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QListWidgetItem, QVBoxLayout, QPushButton, QLabel, QHBoxLayout
from multi_logger import MultiLogger
class ListItemWidget(QWidget):
def __init__(self, text, worker):
super().__init__()
self.worker = worker
layout = QHBoxLayout(self)
layout.addWidget(QLabel(text))
layout.addStretch()
btn_start = QPushButton("Start")
btn_stop = QPushButton("Stop")
btn_start.clicked.connect(lambda: self.worker.start())
btn_stop.clicked.connect(lambda: self.worker.stop())
layout.addWidget(btn_start)
layout.addWidget(btn_stop)
layout.setContentsMargins(5, 2, 5, 2)
class MainWindow(QWidget):
def __init__(self, logger):
super().__init__()
self.logger = logger
self.setWindowTitle("Multi-Geräte-Logger")
self.resize(400, 300)
main_layout = QVBoxLayout(self)
self.list_widget = QListWidget()
main_layout.addWidget(self.list_widget)
for worker in self.logger.workers:
item = QListWidgetItem()
widget = ListItemWidget(worker.serial, worker)
item.setSizeHint(widget.sizeHint())
self.list_widget.addItem(item)
self.list_widget.setItemWidget(item, widget)
if __name__ == "__main__":
ml = MultiLogger(outdir="./logs", filter_window_size=10, interval=0.1)
ml.set_default_modes()
app = QApplication(sys.argv)
window = MainWindow(ml)
window.show()
sys.exit(app.exec_())