QTextEdit字块和文本格式

时间:2013-06-27 13:02:46

标签: qt qlineedit

我需要使用不可编辑的字块来制作QLineEdit。

例如,假设我在QLineEdit中删除单词(实际上代表)。 我想在QLineEdit上正常写, BUT 如果我试图将光标移动到中它会移动它,即将光标放在末尾/开始

另外,我希望这个词总是在它上面显示一个突出显示,用不同的颜色(模仿一个可以包装它的盒子)。

关于如何做到这一点的任何想法? QTextArea会更好吗?我在想QLineEdit,因为它实际上是在QTableWidget单元格中,所以我认为它可能或多或少具有相同的功能,我错了吗?

更新我发现这两个函数实际上可能对QLineEdit有用:cursorWordBackward()cursorWordForward(),所以这可能有助于移动单词。有人有这方面的例子吗?

更新2 由于QLineEdit不支持富文本,因此我需要的“突出显示”功能只能通过QTextEdit实现。这还有其他问题:QTextEdit没有我在上面第一次更新中提到的功能,我不知道是否可以将QTextEdit放在QTableWidget单元格中。

2 个答案:

答案 0 :(得分:1)

QLineEdit只能包含纯文本,当然不能这样做。我在考虑QTextEdit,它可以显示HTML。但是看the documentation,我意识到无法在QTextDocument中插入不可编辑的块(由QTextEdit使用)。我认为没有简单的解决方案。

您可以尝试手动实施。捕获textChanged()的{​​{1}}和cursorPositionChanged()信号,分析其内容和光标位置,并在用户将光标移动到不可编辑的块或更改其内容时修改它们。

答案 1 :(得分:-1)

也许您可以使用inputMask ...

来实现这一目标