37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
# gui.py
|
|
from PyQt5.QtWidgets import QWidget, QListWidget, QListWidgetItem, QPushButton, QLabel, QHBoxLayout, QVBoxLayout
|
|
|
|
class ListItemWidget(QWidget):
|
|
def __init__(self, text, index):
|
|
super().__init__()
|
|
self.index = index
|
|
lay = QHBoxLayout(self)
|
|
lay.addWidget(QLabel(text))
|
|
lay.addStretch()
|
|
self.btn_start = QPushButton("Start")
|
|
self.btn_stop = QPushButton("Stop")
|
|
self.btn_stop.setEnabled(False)
|
|
lay.addWidget(self.btn_start)
|
|
lay.addWidget(self.btn_stop)
|
|
lay.setContentsMargins(5,2,5,2)
|
|
|
|
def set_running(self, running: bool):
|
|
self.btn_start.setEnabled(not running)
|
|
self.btn_stop.setEnabled(running)
|
|
|
|
class MainWindow(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.setWindowTitle("Logger")
|
|
lay = QVBoxLayout(self)
|
|
self.list_widget = QListWidget()
|
|
lay.addWidget(self.list_widget)
|
|
|
|
def add_list_item(self, text, index):
|
|
item = QListWidgetItem()
|
|
w = ListItemWidget(text, index)
|
|
item.setSizeHint(w.sizeHint())
|
|
self.list_widget.addItem(item)
|
|
self.list_widget.setItemWidget(item, w)
|
|
return w
|