如何在QPlainTextEdit中使一行只读

How to make a line readonly in QPlainTextEdit?

本文关键字:一行 只读 QPlainTextEdit      更新时间:2023-10-16

我想在子类QPlainTextEdit中使特定行只读。

我知道我可以覆盖keyPressed事件并在只读行中忽略它,但是我需要为非编辑键(例如箭头导航键)过滤键事件。此外,这也不能解释在该行上粘贴的文本。

是否有任何内置支持或更好的方法?

如果您跟踪"read-only"部分的开始和结束,那么当光标或部分选择进入只读范围时,您可以简单地更改整个文档的只读属性。

http://doc.qt.io/qt-5/qplaintextedit.html readOnly-prop

我会使用语法高亮笔将只读部分标记为不同的颜色,这样对最终用户来说更有意义。

http://doc.qt.io/qt-5/qtwidgets-richtext-syntaxhighlighter-example.html

希望对你有帮助。