我需要使用不可编辑的字块来制作QLineEdit。
例如,假设我在QLineEdit中删除单词(实际上代表值)。 我想在QLineEdit上正常写, BUT 如果我试图将光标移动到字中它会移动它,即将光标放在末尾/开始字。
另外,我希望这个词总是在它上面显示一个突出显示,用不同的颜色(模仿一个可以包装它的盒子)。
关于如何做到这一点的任何想法? QTextArea会更好吗?我在想QLineEdit,因为它实际上是在QTableWidget单元格中,所以我认为它可能或多或少具有相同的功能,我错了吗?
更新我发现这两个函数实际上可能对QLineEdit有用:cursorWordBackward()
和cursorWordForward()
,所以这可能有助于移动单词。有人有这方面的例子吗?
更新2 由于QLineEdit不支持富文本,因此我需要的“突出显示”功能只能通过QTextEdit实现。这还有其他问题:QTextEdit没有我在上面第一次更新中提到的功能,我不知道是否可以将QTextEdit放在QTableWidget单元格中。
答案 0 :(得分:1)
QLineEdit只能包含纯文本,当然不能这样做。我在考虑QTextEdit,它可以显示HTML。但是看the documentation,我意识到无法在QTextDocument中插入不可编辑的块(由QTextEdit使用)。我认为没有简单的解决方案。
您可以尝试手动实施。捕获textChanged()
的{{1}}和cursorPositionChanged()
信号,分析其内容和光标位置,并在用户将光标移动到不可编辑的块或更改其内容时修改它们。
答案 1 :(得分:-1)
也许您可以使用inputMask ...
来实现这一目标