43 lines
1.5 KiB
Python
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_()) |