为keyPressEvent的QTextEdit子类化覆盖唯一的方法吗?

问题描述 投票:-3回答:1

我正在使用PySide2构建Qt应用程序,它将至少具有一个类似于texteditor的视图。我有两个原因想要修改QTextEdit的keyPressEvent方法的功能:

  1. [具有使用用户定义的键盘操作来操纵文本的能力(例如,使用tab / shift + tab的标准缩进/凹进,尽管还有很多其他功能。]
  2. 为了便于将来使用某些功能,所显示的文本将以实质上不同的结构存储(不是HTML / RTF / etc,而是一棵树)。这使我相信我不能将QTextEdit用作View + Controller的组合,而必须在每次按键后提取Controller逻辑以正确修改基础结构,并将生成的文本输入QTextEdit。 (尽管,我已经考虑过利用QTextEdit在幕后使用HTML的事实来可能使用diva标签隐藏结构。但是我尚未对此进行测试。注意以下

鉴于Python已被解释,这两个的结合-再加上也希望使用QSyntaxHighlighter-的愿望与我有关。如果每次按键都执行大量的业务逻辑,则可以推断它最终可能会非常引人注目。现在,我不想过早地进行优化,但是我想避免走上一条似乎不得不做出更耗时的更改的道路。我只是好奇,如果没有用C ++编写QTextEdit子类,是否还有我没有想到的其他方法。

或者,如果似乎需要QTextEdit的C ++子类,则最好重写keyPressEvent

note:只是在QtDesigner中与小部件一起玩,并且<a>锚点和<meta>标记都不能至少“标记”结构元素,而对于用户。 (<a name="something"></a>不会随文本一起移动,<meta>总是移到头部。)>

我正在使用PySide2构建Qt应用程序,它将至少具有一个类似于texteditor的视图。我有两个原因想要修改QTextEdit的keyPressEvent方法的功能:添加...

python qt user-interface textview pyside2
1个回答
0
投票

您可以使用事件过滤器来处理按键,而不必将其归类为QTextEdit

© www.soinside.com 2019 - 2024. All rights reserved.