请帮我设计一套PyQt6赛博朋克风格的qss样式 要求是P有QT6的所有控件都要参与设计
时间: 2023-06-12 12:08:26 浏览: 156
好的,以下是一套赛博朋克风格的 qss 样式,包含了 PyQt6 的所有控件:
```qss
/* 设置全局字体 */
* {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
/* 设置全局颜色变量 */
:root {
--color-primary: #00d2ff;
--color-secondary: #a8c0ff;
--color-tertiary: #ffb8c6;
--color-text: #fff;
}
/* 设置窗口背景 */
QWidget {
background-color: #111;
}
/* 设置按钮样式 */
QPushButton {
background-color: var(--color-primary);
border: none;
border-radius: 5px;
color: var(--color-text);
font-size: 14px;
padding: 8px 16px;
}
QPushButton:hover {
background-color: var(--color-secondary);
}
QPushButton:pressed {
background-color: var(--color-tertiary);
}
/* 设置标签样式 */
QLabel {
color: var(--color-text);
font-size: 16px;
}
/* 设置文本框样式 */
QLineEdit {
background-color: #333;
border: none;
border-radius: 5px;
color: var(--color-text);
font-size: 14px;
padding: 8px;
}
QLineEdit:focus {
border: 2px solid var(--color-primary);
}
/* 设置滚动条样式 */
QScrollBar:vertical {
background-color: #333;
border-radius: 5px;
width: 16px;
}
QScrollBar::handle:vertical {
background-color: var(--color-primary);
border-radius: 5px;
min-height: 20px;
}
QScrollBar::add-line:vertical {
height: 16px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
height: 16px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background-color: none;
}
/* 设置列表框样式 */
QListWidget {
background-color: #333;
border: none;
border-radius: 5px;
color: var(--color-text);
}
QListWidget::item {
padding: 8px;
}
QListWidget::item:hover {
background-color: var(--color-secondary);
}
/* 设置进度条样式 */
QProgressBar {
background-color: #333;
border: none;
border-radius: 5px;
height: 10px;
}
QProgressBar::chunk {
background-color: var(--color-primary);
border-radius: 5px;
}
/* 设置复选框样式 */
QCheckBox {
color: var(--color-text);
}
QCheckBox::indicator {
width: 20px;
height: 20px;
}
QCheckBox::indicator:unchecked {
border: 2px solid var(--color-text);
}
QCheckBox::indicator:checked {
background-color: var(--color-primary);
border: none;
}
/* 设置单选框样式 */
QRadioButton {
color: var(--color-text);
padding-left: 20px;
}
QRadioButton::indicator {
width: 20px;
height: 20px;
}
QRadioButton::indicator:unchecked {
border: 2px solid var(--color-text);
}
QRadioButton::indicator:checked {
background-color: var(--color-primary);
border: none;
}
/* 设置下拉框样式 */
QComboBox {
background-color: #333;
border: none;
border-radius: 5px;
color: var(--color-text);
font-size: 14px;
padding: 8px;
}
QComboBox::drop-down {
border: none;
}
QComboBox::down-arrow {
image: url("arrow-down.png");
width: 16px;
height: 16px;
}
QComboBox QAbstractItemView {
background-color: #333;
border: none;
border-radius: 5px;
color: var(--color-text);
font-size: 14px;
}
QComboBox QAbstractItemView::item {
padding: 8px;
}
QComboBox QAbstractItemView::item:hover {
background-color: var(--color-secondary);
}
/* 设置滑块样式 */
QSlider::groove:horizontal {
background-color: #333;
border-radius: 5px;
height: 10px;
}
QSlider::handle:horizontal {
background-color: var(--color-primary);
border: none;
border-radius: 5px;
width: 20px;
height: 20px;
margin: -5px 0;
}
QSlider::add-page:horizontal, QSlider::sub-page:horizontal {
background-color: none;
}
```
你可以将这段代码保存为 `cyberpunk.qss` 文件,并在程序中加载使用:
```python
import sys
from PyQt6.QtWidgets import QApplication, QWidget
from PyQt6.QtGui import QPalette, QColor, QPixmap
from PyQt6.QtCore import Qt
app = QApplication(sys.argv)
# 加载 qss 样式
with open('cyberpunk.qss', 'r') as f:
app.setStyleSheet(f.read())
# 创建窗口
window = QWidget()
window.setWindowTitle('Cyberpunk Style')
window.setGeometry(100, 100, 400, 300)
window.show()
sys.exit(app.exec())
```
希望这个样式能满足你的需求。
阅读全文