feat(ViperQtProject): 原生指示器仅改边框色(不设背景/图标) 尝试保留对勾
This commit is contained in:
1 parent
921a247fe5
commit
7bf80350d7
1 file changed
+2
-20
@@ -79,9 +79,9 @@ cur_theme: int = 0
|
||||
# ============================================================
|
||||
# 深色主题 QSS(VS Installer 风格,单行字面量)
|
||||
# ============================================================
|
||||
dark_qss: str = "QWidget { background-color: #1e1e1e; color: #d4d4d4; font-family: \"Segoe UI\", \"Microsoft YaHei UI\", \"Microsoft YaHei\", \"PingFang SC\", \"Noto Sans CJK SC\", sans-serif; font-size: 13px; } QPushButton { background-color: #333333; border: 1px solid #555555; border-radius: 4px; padding: 7px 16px; color: #ffffff; } QPushButton:hover { background-color: #454545; border-color: #6a6a6a; } QPushButton:pressed { background-color: #2a6da8; border-color: #4a86c8; } QPushButton:disabled { background-color: #2a2a2a; color: #666666; border-color: #3a3a3a; } QLineEdit, QTextEdit { background-color: #252526; border: 1px solid #555555; border-radius: 4px; padding: 5px 8px; color: #ffffff; } QPlainTextEdit { background-color: #1a1a1a; border: 1px solid #555555; border-radius: 4px; color: #cccccc; } QCheckBox { color: #d4d4d4; spacing: 10px; font-size: 14px; } QProgressBar { background-color: #252526; border: 1px solid #555555; border-radius: 4px; text-align: center; color: #ffffff; font-size: 13px; } QProgressBar::chunk { background-color: #4a86c8; border-radius: 3px; } QTreeWidget { background-color: #1a1a1a; border: 1px solid #555555; border-radius: 4px; color: #d4d4d4; } QTreeWidget::item { height: 26px; padding-left: 4px; } QTreeWidget::item:selected { background-color: #2a6da8; color: #ffffff; } QComboBox { background-color: #252526; border: 1px solid #555555; border-radius: 4px; padding: 5px 10px; color: #ffffff; } QComboBox:hover { border-color: #6a6a6a; } QComboBox::drop-down { border: none; width: 22px; } QComboBox QAbstractItemView { background-color: #252526; color: #ffffff; border: 1px solid #555555; selection-background-color: #2a6da8; } QScrollBar:vertical { background: #252526; width: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:vertical { background: #4a4a4a; min-height: 24px; border-radius: 5px; } QScrollBar::handle:vertical:hover { background: #5a5a5a; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: transparent; } QScrollBar:horizontal { background: #252526; height: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:horizontal { background: #4a4a4a; min-width: 24px; border-radius: 5px; } QScrollBar::handle:horizontal:hover { background: #5a5a5a; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: transparent; }"
|
||||
dark_qss: str = "QWidget { background-color: #1e1e1e; color: #d4d4d4; font-family: \"Segoe UI\", \"Microsoft YaHei UI\", \"Microsoft YaHei\", \"PingFang SC\", \"Noto Sans CJK SC\", sans-serif; font-size: 13px; } QPushButton { background-color: #333333; border: 1px solid #555555; border-radius: 4px; padding: 7px 16px; color: #ffffff; } QPushButton:hover { background-color: #454545; border-color: #6a6a6a; } QPushButton:pressed { background-color: #2a6da8; border-color: #4a86c8; } QPushButton:disabled { background-color: #2a2a2a; color: #666666; border-color: #3a3a3a; } QLineEdit, QTextEdit { background-color: #252526; border: 1px solid #555555; border-radius: 4px; padding: 5px 8px; color: #ffffff; } QPlainTextEdit { background-color: #1a1a1a; border: 1px solid #555555; border-radius: 4px; color: #cccccc; } QCheckBox { color: #d4d4d4; spacing: 10px; font-size: 14px; } QCheckBox::indicator, QTreeWidget::indicator { border: 1px solid #9a9a9a; border-radius: 3px; } QProgressBar { background-color: #252526; border: 1px solid #555555; border-radius: 4px; text-align: center; color: #ffffff; font-size: 13px; } QProgressBar::chunk { background-color: #4a86c8; border-radius: 3px; } QTreeWidget { background-color: #1a1a1a; border: 1px solid #555555; border-radius: 4px; color: #d4d4d4; } QTreeWidget::item { height: 26px; padding-left: 4px; } QTreeWidget::item:selected { background-color: #2a6da8; color: #ffffff; } QComboBox { background-color: #252526; border: 1px solid #555555; border-radius: 4px; padding: 5px 10px; color: #ffffff; } QComboBox:hover { border-color: #6a6a6a; } QComboBox::drop-down { border: none; width: 22px; } QComboBox QAbstractItemView { background-color: #252526; color: #ffffff; border: 1px solid #555555; selection-background-color: #2a6da8; } QScrollBar:vertical { background: #252526; width: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:vertical { background: #4a4a4a; min-height: 24px; border-radius: 5px; } QScrollBar::handle:vertical:hover { background: #5a5a5a; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: transparent; } QScrollBar:horizontal { background: #252526; height: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:horizontal { background: #4a4a4a; min-width: 24px; border-radius: 5px; } QScrollBar::handle:horizontal:hover { background: #5a5a5a; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: transparent; }"
|
||||
|
||||
light_qss: str = "QWidget { background-color: #f5f6f8; color: #1e1e1e; font-family: \"Segoe UI\", \"Microsoft YaHei UI\", \"Microsoft YaHei\", \"PingFang SC\", \"Noto Sans CJK SC\", sans-serif; font-size: 13px; } QPushButton { background-color: #ffffff; border: 1px solid #b9c0cb; border-radius: 4px; padding: 7px 16px; color: #1e1e1e; } QPushButton:hover { background-color: #eef1f6; border-color: #8a97a8; } QPushButton:pressed { background-color: #2a6da8; border-color: #2a6da8; color: #ffffff; } QPushButton:disabled { background-color: #eceef1; color: #9aa3b0; border-color: #d3d8e0; } QLineEdit, QTextEdit { background-color: #ffffff; border: 1px solid #b9c0cb; border-radius: 4px; padding: 5px 8px; color: #1e1e1e; } QPlainTextEdit { background-color: #ffffff; border: 1px solid #c6ccd6; border-radius: 4px; color: #1e1e1e; } QCheckBox { color: #1e1e1e; spacing: 10px; font-size: 14px; } QProgressBar { background-color: #e2e6ec; border: 1px solid #c6ccd6; border-radius: 4px; text-align: center; color: #1e1e1e; font-size: 13px; } QProgressBar::chunk { background-color: #2a6da8; border-radius: 3px; } QTreeWidget { background-color: #ffffff; border: 1px solid #c6ccd6; border-radius: 4px; color: #1e1e1e; } QTreeWidget::item { height: 26px; padding-left: 4px; } QTreeWidget::item:selected { background-color: #d6e4f5; color: #1e1e1e; } QComboBox { background-color: #ffffff; border: 1px solid #b9c0cb; border-radius: 4px; padding: 5px 10px; color: #1e1e1e; } QComboBox:hover { border-color: #8a97a8; } QComboBox::drop-down { border: none; width: 22px; } QComboBox QAbstractItemView { background-color: #ffffff; color: #1e1e1e; border: 1px solid #b9c0cb; selection-background-color: #d6e4f5; } QScrollBar:vertical { background: #e2e6ec; width: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:vertical { background: #b0b9c6; min-height: 24px; border-radius: 5px; } QScrollBar::handle:vertical:hover { background: #9aa3b0; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: transparent; } QScrollBar:horizontal { background: #e2e6ec; height: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:horizontal { background: #b0b9c6; min-width: 24px; border-radius: 5px; } QScrollBar::handle:horizontal:hover { background: #9aa3b0; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: transparent; }"
|
||||
light_qss: str = "QWidget { background-color: #f5f6f8; color: #1e1e1e; font-family: \"Segoe UI\", \"Microsoft YaHei UI\", \"Microsoft YaHei\", \"PingFang SC\", \"Noto Sans CJK SC\", sans-serif; font-size: 13px; } QPushButton { background-color: #ffffff; border: 1px solid #b9c0cb; border-radius: 4px; padding: 7px 16px; color: #1e1e1e; } QPushButton:hover { background-color: #eef1f6; border-color: #8a97a8; } QPushButton:pressed { background-color: #2a6da8; border-color: #2a6da8; color: #ffffff; } QPushButton:disabled { background-color: #eceef1; color: #9aa3b0; border-color: #d3d8e0; } QLineEdit, QTextEdit { background-color: #ffffff; border: 1px solid #b9c0cb; border-radius: 4px; padding: 5px 8px; color: #1e1e1e; } QPlainTextEdit { background-color: #ffffff; border: 1px solid #c6ccd6; border-radius: 4px; color: #1e1e1e; } QCheckBox { color: #1e1e1e; spacing: 10px; font-size: 14px; } QCheckBox::indicator, QTreeWidget::indicator { border: 1px solid #1e1e1e; border-radius: 3px; } QProgressBar { background-color: #e2e6ec; border: 1px solid #c6ccd6; border-radius: 4px; text-align: center; color: #1e1e1e; font-size: 13px; } QProgressBar::chunk { background-color: #2a6da8; border-radius: 3px; } QTreeWidget { background-color: #ffffff; border: 1px solid #c6ccd6; border-radius: 4px; color: #1e1e1e; } QTreeWidget::item { height: 26px; padding-left: 4px; } QTreeWidget::item:selected { background-color: #d6e4f5; color: #1e1e1e; } QComboBox { background-color: #ffffff; border: 1px solid #b9c0cb; border-radius: 4px; padding: 5px 10px; color: #1e1e1e; } QComboBox:hover { border-color: #8a97a8; } QComboBox::drop-down { border: none; width: 22px; } QComboBox QAbstractItemView { background-color: #ffffff; color: #1e1e1e; border: 1px solid #b9c0cb; selection-background-color: #d6e4f5; } QScrollBar:vertical { background: #e2e6ec; width: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:vertical { background: #b0b9c6; min-height: 24px; border-radius: 5px; } QScrollBar::handle:vertical:hover { background: #9aa3b0; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: transparent; } QScrollBar:horizontal { background: #e2e6ec; height: 10px; margin: 0px; border: none; border-radius: 5px; } QScrollBar::handle:horizontal { background: #b0b9c6; min-width: 24px; border-radius: 5px; } QScrollBar::handle:horizontal:hover { background: #9aa3b0; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: transparent; }"
|
||||
|
||||
|
||||
# 导航项样式
|
||||
@@ -466,19 +466,6 @@ def OnThemeChanged(slot_id: int, data: t.CPtr):
|
||||
ApplyTheme(idx)
|
||||
|
||||
|
||||
chk_off_b64: str = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAuUlEQVR42mNgGAVYAL+AoLyLp19/cmbh+aqmnv+UYJAZILNAZhJlua6BSXxRZfN7Si1GxyAzQWYTtBxZk09g+HxbR7d6SjDIDGQzcToCFEQwn4OCTUxCSp9aUQoyCxadIDuwRgconmCupKblyI6AmQ+yC0MBzIWgIKNV4oZFB8guDEmY60DxRisHgMyG2TPqgFEHjDpg1AGjDhh1wKgDBp8DBrxBMuBNsgFvlA54s3xQdEwGRddsxAEAzvhAa3CJi0YAAAAASUVORK5CYII="
|
||||
chk_on_b64: str = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABW0lEQVR42mNgGAVYACuvqLy4bVy/UkTHea3cFf8pwSAzQGaBzCTKcn4N+3j1tLnvKbUYHYPMBJlN0HJqW4yOcToCFES08Dm2kMAaHaB4ooWFgR07wBhZDGQXhgOokeDQLb7++N1/GACxYQ4B2YXhAGpabl62FsVyZEfA1NDUASdvvfyPC8BCgWYOWH/i3n98gKYOaF9zDq/lNI2CnFmH8Vr+8etPlNxAlAOwZSFc6kAWEBP0RDkAXxbCluIJWV65+ASGPrwOwJaF0IMQX3ZDBgv338DqcJwOAFlCbDwSSvEgeVzRRpYDkB0B8hmhFA8KIZIdgCsK0B1BSB6f5UQlQkKWEBtNZDmAEkeAygNiyg2iywFSHAEqCYktuIguCYl1BL4UT5EDiHEEqPYjtegmuUGCyxGEshuuljJZTTJSimh8GGuTjJRGKbGVFEmN0gFvlg+Kjsmg6JqNOAAARtDS7ZXllfcAAAAASUVORK5CYII="
|
||||
|
||||
|
||||
def ApplyIndicatorIcons(ptr: t.CPtr, is_tree: int):
|
||||
"""复选框/树叶子指示器:对勾 PNG 以 base64 data URI 内嵌,无需运行时文件"""
|
||||
sel: str = "QTreeWidget" if is_tree != 0 else "QCheckBox"
|
||||
buf: bytes = stdlib.malloc(2400)
|
||||
viperlib.snprintf(buf, 2400, "%s::indicator { width: 16px; height: 16px; background-color: transparent; background-repeat: no-repeat; background-position: center; } %s::indicator:unchecked { image: url(data:image/png;base64,%s); } %s::indicator:checked { image: url(data:image/png;base64,%s); }", sel, sel, chk_off_b64, sel, chk_on_b64)
|
||||
vqt6.vqt6_qwidget_set_stylesheet_utf8(ptr, buf)
|
||||
stdlib.free(buf)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
global app_ptr, stack_ptr
|
||||
global nav0_ptr, nav1_ptr, nav2_ptr, nav3_ptr, nav4_ptr, nav5_ptr
|
||||
@@ -630,7 +617,6 @@ def main() -> int:
|
||||
agree_cb = vqt6.QCheckBox("我接受上述协议条款")
|
||||
p1.addWidget(agree_cb._ptr)
|
||||
agree_cb_ptr = t.CPtr(agree_cb._ptr)
|
||||
ApplyIndicatorIcons(agree_cb_ptr, 0)
|
||||
agree_cb.toggled(OnLicenseToggled, 0)
|
||||
|
||||
lbrow = vqt6.QHBoxLayout()
|
||||
@@ -665,7 +651,6 @@ def main() -> int:
|
||||
tree.setHeaderHidden(1)
|
||||
p2.addWidget(tree._ptr)
|
||||
tree_ptr = t.CPtr(tree._ptr)
|
||||
ApplyIndicatorIcons(tree_ptr, 1)
|
||||
|
||||
# 叶子磁盘占用经 setSize 存入节点 UserRole,统计时自动读取
|
||||
g0 = vqt6.QTreeWidgetItem("开发工具链")
|
||||
@@ -763,19 +748,16 @@ def main() -> int:
|
||||
opt0.setChecked(1)
|
||||
p3.addWidget(opt0._ptr)
|
||||
opt0_ptr = t.CPtr(opt0._ptr)
|
||||
ApplyIndicatorIcons(opt0_ptr, 0)
|
||||
|
||||
opt1 = vqt6.QCheckBox("将 viper 命令添加到系统 PATH")
|
||||
opt1.setChecked(0)
|
||||
p3.addWidget(opt1._ptr)
|
||||
opt1_ptr = t.CPtr(opt1._ptr)
|
||||
ApplyIndicatorIcons(opt1_ptr, 0)
|
||||
|
||||
opt2 = vqt6.QCheckBox("创建桌面图标")
|
||||
opt2.setChecked(0)
|
||||
p3.addWidget(opt2._ptr)
|
||||
opt2_ptr = t.CPtr(opt2._ptr)
|
||||
ApplyIndicatorIcons(opt2_ptr, 0)
|
||||
|
||||
# 安装位置行
|
||||
path_row = vqt6.QHBoxLayout()
|
||||
|
||||
Reference in new issue
Block a user