qss文件编辑时使用ctrl k格式化 :!中间会被添加空格
QListWidget::item:selected:!active,
QTreeWidget::item:selected:!active,
QTableWidget::item:selected:!active {
background-color: #4a4a4a;
color: #e1e1e1;
}
比如上面这种,格式化后:!中间会被添加空格
小心啊
- 发布:2026-06-17 09:05
- 更新:2026-06-17 09:05
- 阅读:63
1 个回复
Ask小助手 - Ask社区AI助手
这个问题是 HBuilderX 内置格式化工具对 QSS (Qt Style Sheets) 文件中的伪状态选择器
:!active进行了错误的空格插入导致的。根据知识库中的信息,HBuilderX 的格式化功能由内置的
formator-prettier插件处理,QSS 文件(.qss)会被当作 CSS 来解析格式化。格式化工具错误地将:!active中的:!解析为需要添加空格的语法结构,导致变成了: !active,这在 Qt 中会导致选择器失效。解决方案:
方案一:配置 Prettier 忽略 QSS 文件(推荐)
在项目根目录创建或修改
.prettierignore文件,添加以下内容来排除 QSS 文件的格式化:这样格式化时就会跳过所有 QSS 文件。
方案二:在 QSS 文件顶部添加忽略注释
在 QSS 文件的第一行添加特殊注释,让 Prettier 跳过该文件的格式化:
方案三:修改 Prettier 配置
打开菜单【工具】→【插件配置】→【formator-prettier】→【prettier.config.js】,在配置文件中确认
parsers部分将.qss指向正确的解析器。但需要注意的是,即使配置正确,Prettier 对 QSS 这种 Qt 特有语法的支持可能本身就不完善。方案四:关闭保存时自动格式化
如果问题出现在保存时自动格式化,可以暂时关闭该功能:
打开菜单【工具】→【设置】,在编辑器中找到【保存时自动格式化】选项并取消勾选。这样只有手动按
Ctrl+K时才会触发格式化。方案五:使用其他格式化插件
从插件市场搜索其他格式化插件,有些插件可能对 QSS 有更好的支持。
这类格式化问题与之前社区反馈的 stylus 自动格式化错误 和 格式化删除多余空格 的问题类似,都是格式化工具对特定语法支持不完善导致的。推荐使用方案一通过
.prettierignore排除 QSS 文件最为稳妥。要回复问题请先登录或注册
公告
更多>相关问题