# main.py import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout from PyQt5.QtCore import Qt from dmx import DMXRecorder class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() self.isRecording = False self.recorder = None def initUI(self): self.setWindowTitle("DMX Recorder") self.resize(300, 200) # Use dark theme self.setStyleSheet(''' QWidget { background-color: #222222; color: #FFFFFF; } QSlider::groove:horizontal { border: 1px solid #444444; height: 8px; background: #555555; } QSlider::handle:horizontal { background: #888888; border: 1px solid #444444; width: 18px; margin: -8px 0; } QLineEdit { background-color: #333333; border: 1px solid #555555; color: #FFFFFF; padding: 4px; } QPushButton { background-color: #444444; border: 1px solid #666666; padding: 6px; } QPushButton:hover { background-color: #555555; } QLabel { color: #FFFFFF; } ''') self.central_widget = QWidget() self.setCentralWidget(self.central_widget) self.layout = QVBoxLayout() self.central_widget.setLayout(self.layout) self.record_button = QPushButton("Record") self.record_button.clicked.connect(self.toggle_recording) self.layout.addWidget(self.record_button) def toggle_recording(self): if not self.isRecording: # Start recording self.recorder = DMXRecorder() self.recorder.start_recording() self.record_button.setText("Stop") self.isRecording = True else: # Stop recording if self.recorder: self.recorder.stop_recording() self.recorder = None self.record_button.setText("Record") self.isRecording = False if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())