如何在QPlainTextEdit中只读一行?

时间:2015-10-13 18:34:56

标签: c++ qt user-interface qplaintextedit

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

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

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

1 个答案:

答案 0 :(得分:1)

如果你跟踪"只读"的开头和结尾?部分,当光标或选区的一部分进入只读范围时,您只需更改整个文档的只读属性。

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

我会使用语法高亮显示器使只读部分变成不同的颜色,这样对最终用户来说更有意义。

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

希望有所帮助。