480 lines
8.9 KiB
Python
480 lines
8.9 KiB
Python
STYLE = """
|
|
QWidget {
|
|
background-color: #1a1b2e;
|
|
color: #e2e8f0;
|
|
font-family: 'Segoe UI', 'SF Pro Display', sans-serif;
|
|
font-size: 12px;
|
|
}
|
|
|
|
QGroupBox {
|
|
border: 1px solid #2d3748;
|
|
border-radius: 8px;
|
|
margin-top: 10px;
|
|
padding: 20px 8px 6px 8px;
|
|
font-weight: bold;
|
|
color: #7eb8f7;
|
|
background-color: #1e2035;
|
|
}
|
|
|
|
QGroupBox::title {
|
|
subcontrol-origin: margin;
|
|
subcontrol-position: top left;
|
|
left: 14px;
|
|
top: 5px;
|
|
padding: 0px 8px;
|
|
background-color: transparent;
|
|
}
|
|
|
|
QGroupBox::indicator {
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: 4px;
|
|
border: 1px solid #3d4a6b;
|
|
background-color: #13141f;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
QGroupBox::indicator:unchecked {
|
|
background-color: #13141f;
|
|
}
|
|
|
|
QGroupBox::indicator:checked {
|
|
background-color: #3b82f6;
|
|
border-color: #3b82f6;
|
|
}
|
|
|
|
QLabel {
|
|
background-color: transparent;
|
|
}
|
|
|
|
QLabel#title {
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
color: #7eb8f7;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
QLabel#info {
|
|
color: #94a3b8;
|
|
font-size: 11px;
|
|
}
|
|
|
|
QPushButton {
|
|
background-color: #2d3352;
|
|
border: 1px solid #3d4a6b;
|
|
border-radius: 6px;
|
|
padding: 4px 12px;
|
|
color: #e2e8f0;
|
|
font-weight: 600;
|
|
min-height: 24px;
|
|
}
|
|
|
|
QPushButton:hover {
|
|
background-color: #3d4a6b;
|
|
border-color: #7eb8f7;
|
|
color: #ffffff;
|
|
}
|
|
|
|
QPushButton:pressed {
|
|
background-color: #1a2040;
|
|
}
|
|
|
|
QPushButton#scan {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #1a56db, stop:1 #1e66f5);
|
|
border-color: #1a56db;
|
|
color: #ffffff;
|
|
}
|
|
|
|
QPushButton#scan:hover {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #2563eb, stop:1 #3b82f6);
|
|
}
|
|
|
|
QPushButton#flash {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #15803d, stop:1 #16a34a);
|
|
border-color: #15803d;
|
|
color: #ffffff;
|
|
font-size: 13px;
|
|
min-height: 30px;
|
|
}
|
|
|
|
QPushButton#flash:hover {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #16a34a, stop:1 #22c55e);
|
|
}
|
|
|
|
QTableWidget {
|
|
background-color: #13141f;
|
|
alternate-background-color: #1a1b2e;
|
|
border: 1px solid #2d3748;
|
|
border-radius: 8px;
|
|
gridline-color: #2d3748;
|
|
selection-background-color: #2d3a5a;
|
|
selection-color: #e2e8f0;
|
|
}
|
|
|
|
QTableWidget::item {
|
|
padding: 2px 6px;
|
|
border: none;
|
|
}
|
|
|
|
QTableWidget::item:selected {
|
|
background-color: #2d3a5a;
|
|
color: #7eb8f7;
|
|
}
|
|
|
|
QHeaderView::section {
|
|
background-color: #1e2035;
|
|
color: #7eb8f7;
|
|
border: none;
|
|
border-bottom: 2px solid #3b82f6;
|
|
border-right: 1px solid #2d3748;
|
|
padding: 4px 6px;
|
|
font-weight: bold;
|
|
font-size: 11px;
|
|
letter-spacing: 0.5px;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
QHeaderView::section:last {
|
|
border-right: none;
|
|
}
|
|
|
|
QProgressBar {
|
|
border: 1px solid #2d3748;
|
|
border-radius: 6px;
|
|
text-align: center;
|
|
background-color: #13141f;
|
|
color: #e2e8f0;
|
|
height: 20px;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
QProgressBar::chunk {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #3b82f6, stop:1 #7eb8f7);
|
|
border-radius: 7px;
|
|
}
|
|
|
|
QProgressBar#scan_bar {
|
|
border: 1px solid #374151;
|
|
border-radius: 5px;
|
|
text-align: center;
|
|
background-color: #13141f;
|
|
color: #fbbf24;
|
|
height: 16px;
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
QProgressBar#scan_bar::chunk {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #d97706, stop:1 #fbbf24);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
QLineEdit {
|
|
background-color: #13141f;
|
|
border: 1px solid #2d3748;
|
|
border-radius: 8px;
|
|
padding: 7px 12px;
|
|
color: #e2e8f0;
|
|
selection-background-color: #2d3a5a;
|
|
}
|
|
|
|
QLineEdit:focus {
|
|
border-color: #3b82f6;
|
|
background-color: #161727;
|
|
}
|
|
|
|
QScrollBar:vertical {
|
|
background: #13141f;
|
|
width: 10px;
|
|
border-radius: 5px;
|
|
margin: 2px;
|
|
}
|
|
|
|
QScrollBar::handle:vertical {
|
|
background: #3d4a6b;
|
|
border-radius: 5px;
|
|
min-height: 30px;
|
|
}
|
|
|
|
QScrollBar::handle:vertical:hover {
|
|
background: #7eb8f7;
|
|
}
|
|
|
|
QScrollBar::handle:vertical:pressed {
|
|
background: #3b82f6;
|
|
}
|
|
|
|
QScrollBar::add-line:vertical,
|
|
QScrollBar::sub-line:vertical {
|
|
height: 0px;
|
|
background: transparent;
|
|
}
|
|
|
|
QScrollBar::add-page:vertical,
|
|
QScrollBar::sub-page:vertical {
|
|
background: transparent;
|
|
}
|
|
|
|
QScrollBar:horizontal {
|
|
background: #13141f;
|
|
height: 10px;
|
|
border-radius: 5px;
|
|
margin: 2px;
|
|
}
|
|
|
|
QScrollBar::handle:horizontal {
|
|
background: #3d4a6b;
|
|
border-radius: 5px;
|
|
min-width: 30px;
|
|
}
|
|
|
|
QScrollBar::handle:horizontal:hover {
|
|
background: #7eb8f7;
|
|
}
|
|
|
|
QScrollBar::handle:horizontal:pressed {
|
|
background: #3b82f6;
|
|
}
|
|
|
|
QScrollBar::add-line:horizontal,
|
|
QScrollBar::sub-line:horizontal {
|
|
width: 0px;
|
|
background: transparent;
|
|
}
|
|
|
|
QScrollBar::add-page:horizontal,
|
|
QScrollBar::sub-page:horizontal {
|
|
background: transparent;
|
|
}
|
|
|
|
QCheckBox {
|
|
background-color: transparent;
|
|
spacing: 6px;
|
|
color: #94a3b8;
|
|
font-size: 12px;
|
|
}
|
|
|
|
QCheckBox::indicator {
|
|
width: 16px;
|
|
height: 16px;
|
|
border-radius: 4px;
|
|
border: 1px solid #3d4a6b;
|
|
background-color: #13141f;
|
|
}
|
|
|
|
QCheckBox::indicator:checked {
|
|
background-color: #3b82f6;
|
|
border-color: #3b82f6;
|
|
}
|
|
|
|
QCheckBox::indicator:hover {
|
|
border-color: #7eb8f7;
|
|
}
|
|
"""
|
|
|
|
AUTO_STYLE = """
|
|
QWidget {
|
|
background-color: #1a1b2e;
|
|
color: #e2e8f0;
|
|
font-family: 'Segoe UI', 'SF Pro Display', sans-serif;
|
|
font-size: 12px;
|
|
}
|
|
|
|
QGroupBox {
|
|
border: 1px solid #2d3748;
|
|
border-radius: 8px;
|
|
margin-top: 10px;
|
|
padding: 20px 8px 6px 8px;
|
|
font-weight: bold;
|
|
color: #c4b5fd;
|
|
background-color: #1e2035;
|
|
}
|
|
|
|
QGroupBox::title {
|
|
subcontrol-origin: margin;
|
|
subcontrol-position: top left;
|
|
left: 14px;
|
|
top: 5px;
|
|
padding: 0px 8px;
|
|
background-color: transparent;
|
|
}
|
|
|
|
QLabel {
|
|
background-color: transparent;
|
|
}
|
|
|
|
QLabel#title {
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
color: #c4b5fd;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
QPushButton {
|
|
background-color: #2d3352;
|
|
border: 1px solid #3d4a6b;
|
|
border-radius: 6px;
|
|
padding: 4px 12px;
|
|
color: #e2e8f0;
|
|
font-weight: 600;
|
|
min-height: 24px;
|
|
}
|
|
|
|
QPushButton:hover {
|
|
background-color: #3d4a6b;
|
|
border-color: #c4b5fd;
|
|
color: #ffffff;
|
|
}
|
|
|
|
QPushButton#start_btn {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #7c3aed, stop:1 #a78bfa);
|
|
border-color: #7c3aed;
|
|
color: #ffffff;
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
QPushButton#start_btn:hover {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #8b5cf6, stop:1 #c4b5fd);
|
|
}
|
|
|
|
QPushButton#start_btn:disabled {
|
|
background: #3d3d5c;
|
|
color: #6b7280;
|
|
}
|
|
|
|
QPushButton#stop_btn {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #dc2626, stop:1 #ef4444);
|
|
border-color: #dc2626;
|
|
color: #ffffff;
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
QPushButton#stop_btn:hover {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #ef4444, stop:1 #f87171);
|
|
}
|
|
|
|
QPushButton#stop_btn:disabled {
|
|
background: #3d3d5c;
|
|
color: #6b7280;
|
|
}
|
|
|
|
QLineEdit {
|
|
background-color: #13141f;
|
|
border: 1px solid #2d3748;
|
|
border-radius: 8px;
|
|
padding: 7px 12px;
|
|
color: #e2e8f0;
|
|
}
|
|
|
|
QLineEdit:focus {
|
|
border-color: #7c3aed;
|
|
background-color: #161727;
|
|
}
|
|
|
|
QComboBox {
|
|
background-color: #1e1e2e;
|
|
border: 1px solid #3d4a6b;
|
|
border-radius: 4px;
|
|
padding: 4px 10px;
|
|
color: #ffffff;
|
|
font-size: 13px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
QSpinBox {
|
|
background-color: #13141f;
|
|
border: 1px solid #2d3748;
|
|
border-radius: 4px;
|
|
padding: 4px 8px;
|
|
color: #e2e8f0;
|
|
}
|
|
|
|
QTableWidget {
|
|
background-color: #13141f;
|
|
alternate-background-color: #1a1b2e;
|
|
border: 1px solid #2d3748;
|
|
border-radius: 8px;
|
|
gridline-color: #2d3748;
|
|
selection-background-color: #2d3a5a;
|
|
selection-color: #e2e8f0;
|
|
}
|
|
|
|
QTableWidget::item {
|
|
padding: 2px 6px;
|
|
border: none;
|
|
}
|
|
|
|
QHeaderView::section {
|
|
background-color: #1e2035;
|
|
color: #c4b5fd;
|
|
border: none;
|
|
border-bottom: 2px solid #7c3aed;
|
|
border-right: 1px solid #2d3748;
|
|
padding: 4px 6px;
|
|
font-weight: bold;
|
|
font-size: 11px;
|
|
}
|
|
|
|
QHeaderView::section:last {
|
|
border-right: none;
|
|
}
|
|
|
|
QProgressBar {
|
|
border: 1px solid #2d3748;
|
|
border-radius: 6px;
|
|
text-align: center;
|
|
background-color: #13141f;
|
|
color: #e2e8f0;
|
|
height: 20px;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
QProgressBar::chunk {
|
|
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
|
|
stop:0 #7c3aed, stop:1 #a78bfa);
|
|
border-radius: 5px;
|
|
}
|
|
|
|
QScrollBar:vertical {
|
|
background: #13141f;
|
|
width: 10px;
|
|
border-radius: 5px;
|
|
margin: 2px;
|
|
}
|
|
|
|
QScrollBar::handle:vertical {
|
|
background: #3d4a6b;
|
|
border-radius: 5px;
|
|
min-height: 30px;
|
|
}
|
|
|
|
QScrollBar::handle:vertical:hover {
|
|
background: #c4b5fd;
|
|
}
|
|
|
|
QScrollBar::add-line:vertical,
|
|
QScrollBar::sub-line:vertical {
|
|
height: 0px;
|
|
}
|
|
|
|
QScrollBar::add-page:vertical,
|
|
QScrollBar::sub-page:vertical {
|
|
background: transparent;
|
|
}
|
|
"""
|