问题:我想为带有附加标签的文本实现一个文本编辑小部件。我希望某些标签在某些情况下不可见,以免分散用户的注意力。
环境:我正在使用PyQt
并且更喜欢使用QPlainTextWidget
and QSyntaxHighlighter
.
方法:我QSyntaxHighlighter
可以设置QTextCharFormat
符合我要求的字符串。QTextCharFormat
has 为我提供了所有字体属性,如大小、颜色等,但是:我还没有找到隐藏文本或将其大小减小为零的选项。
我不想删除或替换标签,因为这会引入更多代码(复制应该包含标签,没有我不能QSyntaxHighlighter
用于根据标签格式化剩余的文本)。
更新:到目前为止,我发现了一个丑陋的黑客。通过将QTextFormat::FontLetterSpacing设置为较小的值,文本将占用越来越少的空间。结合透明颜色,文本就像是不可见的。
问题:在我的测试中,这仅适用于低至 0.016 % 的字母间距。低于间距将重置为 100 %。