Files
tasmotizer/gui.py
jziolkowski 831e70f6b2 flashing logic rewrite
support for devices that don't self reset and need power cycle
2020-09-20 02:27:16 +02:00

117 lines
4.1 KiB
Python

from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QPalette, QColor
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QSizePolicy, QGroupBox, QSpinBox, QHBoxLayout, QDialog, QProgressBar, \
QPushButton, QButtonGroup, QDialogButtonBox, QLabel, QFrame, QProgressDialog
class VLayout(QVBoxLayout):
def __init__(self, margin=3, spacing=3):
super().__init__()
if isinstance(margin, int):
self.setContentsMargins(margin, margin, margin, margin)
elif isinstance(margin, list):
self.setContentsMargins(margin[0], margin[1], margin[2], margin[3])
self.setSpacing(spacing)
def addWidgets(self, widgets):
for w in widgets:
self.addWidget(w)
def addSpacer(self):
spacer = QWidget()
spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.addWidget(spacer)
class HLayout(QHBoxLayout):
def __init__(self, margin=3, spacing=3):
super().__init__()
if isinstance(margin, int):
self.setContentsMargins(margin, margin, margin, margin)
elif isinstance(margin, list):
self.setContentsMargins(margin[0], margin[1], margin[2], margin[3])
self.setSpacing(spacing)
def addWidgets(self, widgets):
for w in widgets:
self.addWidget(w)
def addSpacer(self):
spacer = QWidget()
spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.addWidget(spacer)
class GroupBoxV(QGroupBox):
def __init__(self, title, margin=3, spacing=3, *args, **kwargs):
super(GroupBoxV, self).__init__(*args, **kwargs)
self.setTitle(title)
layout = VLayout()
layout.setSpacing(spacing)
if isinstance(margin, int):
layout.setContentsMargins(margin, margin, margin, margin)
elif isinstance(margin, list):
layout.setContentsMargins(margin[0], margin[1], margin[2], margin[3])
self.setLayout(layout)
def addWidget(self, w):
self.layout().addWidget(w)
def addWidgets(self, widgets):
for w in widgets:
self.layout().addWidget(w)
def addLayout(self, w):
self.layout().addLayout(w)
class GroupBoxH(QGroupBox):
def __init__(self, title, margin=None, spacing=None, *args, **kwargs):
super(GroupBoxH, self).__init__(title)
self.setLayout(HLayout())
def addWidget(self, w):
self.layout().addWidget(w)
def addWidgets(self, widgets):
for w in widgets:
self.layout().addWidget(w)
def addLayout(self, w):
self.layout().addLayout(w)
class SpinBox(QSpinBox):
def __init__(self, *args, **kwargs):
super(SpinBox, self).__init__(*args, **kwargs)
self.setButtonSymbols(self.NoButtons)
self.setMinimum(kwargs.get('minimum', 1))
self.setMaximum(kwargs.get('maximum', 65535))
dark_palette = QPalette()
dark_palette.setColor(QPalette.Window, QColor(53, 53, 53))
dark_palette.setColor(QPalette.WindowText, Qt.white)
dark_palette.setColor(QPalette.Disabled, QPalette.WindowText, QColor(127, 127, 127))
dark_palette.setColor(QPalette.Base, QColor(42, 42, 42))
dark_palette.setColor(QPalette.AlternateBase, QColor(66, 66, 66))
dark_palette.setColor(QPalette.ToolTipBase, Qt.white)
dark_palette.setColor(QPalette.ToolTipText, Qt.white)
dark_palette.setColor(QPalette.Text, Qt.white)
dark_palette.setColor(QPalette.Disabled, QPalette.Text, QColor(127, 127, 127))
dark_palette.setColor(QPalette.Dark, QColor(35, 35, 35))
dark_palette.setColor(QPalette.Shadow, QColor(20, 20, 20))
dark_palette.setColor(QPalette.Button, QColor(53, 53, 53))
dark_palette.setColor(QPalette.ButtonText, Qt.white)
dark_palette.setColor(QPalette.Disabled, QPalette.ButtonText, QColor(127, 127, 127))
dark_palette.setColor(QPalette.BrightText, Qt.red)
dark_palette.setColor(QPalette.Link, QColor(42, 130, 218))
dark_palette.setColor(QPalette.Highlight, QColor(42, 130, 218))
dark_palette.setColor(QPalette.Disabled, QPalette.Highlight, QColor(80, 80, 80))
dark_palette.setColor(QPalette.HighlightedText, Qt.white)
dark_palette.setColor(QPalette.Disabled, QPalette.HighlightedText, QColor(127, 127, 127))