【发布时间】:2021-11-08 13:17:15
【问题描述】:
每当用户在小部件内按 Return 或 Enter 时,我都想将文本保存在 textEdit 小部件中。但我不确定如何注册用户在小部件边界内按下了特定键。
.returnPressed 仅适用于 lineEdits。我曾尝试使用 keyPressEvent(),但据我所知,这是一个独立的功能,我不知道如何将它连接到文本小部件。
如果我使用的是 Tkinter,我会这样写:
entry.bind("<Return>", entry_get)
但我不知道如何在 PyQt5 中做到这一点。
【问题讨论】:
-
使用
keyPressEvent通常是正确的选择,您能告诉我们您是如何尝试将它与minimal reproducible example 一起使用的吗?另外,在 StackOverflow 上对这里的函数做一些研究,你会看到很多相关的问题。 -
文本编辑器是一个多行编辑器。如果使用 return/enter 来触发保存,用户将如何添加新行?也许keyboard shortcut 会是更好的解决方案?
-
@ekhumoro 一旦到达文本框的末尾,文本就会移动到下一行,就像 word 中的文本框一样
-
@musicamante 在发布此之前我进行了研究。这些都没有帮助,因为我只能找到关于 returnPressed 和实现 keyPressEvent 以对一般按键做出反应的帖子,而不是在某个小部件中。我复制了其中的一些代码并试图让它工作,但它给我留下了如此强烈的印象,即我停止了错误的方法。我想,既然这看起来应该是一件非常简单的事情,有人可以给我一个快速的答案。如果你知道,请告诉我,否则我会跳过它,因为我已经被其他的东西弄得不知所措了。
-
@temp54 不,它没有。要添加新的空白行,必须按下回车/回车,就像任何其他多行编辑器一样。
标签: python python-3.x pyqt pyqt5