我有一个QTextEdit,希望用户能够输入富文本,然后在窗口小部件中自动(正确)显示(格式化)。
在以编程方式设置文本时(使用 setText()),它可以正常工作,但在手动键入时则不行。见下图.."输入"使用setText设置,手动键入以下行。我希望这一行自动格式化为
最简单的方法是什么?我可以考虑手动捕获关键事件并明确将文本设置为HTML的唯一方法。但我确信这是一种更好的方式。
答案 0 :(得分:2)
手动输入的html被转义,<将成为<等等。
如果不是这样的话,你就无法编辑它,原因很明显。 您可以尝试添加[render]按钮或类似的东西,以将输入的文本呈现为html。尝试在按键上渲染是非常危险的,因为它使得输入非常不方便和反直觉,然后让它神奇地改变输出。未完成的标记也可能会在你的车轮上留下一根棍子。
从富文本源(例如网页)粘贴也可以保留格式。
答案 1 :(得分:1)
正如“JinX”已经说过,如果您尝试捕获每个关键事件然后尝试更改要在HTML中呈现的文本,它将不会如此直观。 虽然您可以使用一些特殊的键序列,但请说“shift + return key”将当前行/整个textedit的文本更改为html格式的文本。 这只是一个建议。 在这种情况下,不仅仅是实现,它还与用户期望的内容有关。 将1行/整个textedit的文本从plain更改为HTML也很容易实现。