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