[PyQt] A quick question about Return in a text edit (Evan Driscoll)

David Cortesi davecortesi at gmail.com
Tue Dec 4 15:38:03 GMT 2012

This type of question is better addressed to the Qt fora,
see qt-project.org/forums. That said...

You definitely can monitor all keystrokes using keyPressEvent.
You will likely find other reasons for doing so besides shift-enter,
for example you might trap ^f to implement find.

A whole lot of stuff comes through keyPressEvent, write a
simple one first that just prints the event's members out to the
console to get an idea. You will get very familiar with the key enum
in the Qt namespace.

Also for entering "newline"? In Q[Plain]TextEdit, you want to insert
the Unicode para separator, \u2029. Not \n.

Also, get Summerhill's book if you don't have it.

On Tue, Dec 4, 2012 at 4:00 AM,  <pyqt-request at riverbankcomputing.com> wrote:

> From what I can tell, I want to use a QPlainTextEdit. I don't think a
> QLineEdit will work because I will sometimes need multiple lines, but
> they'll arise in ways other than the user pressing enter. (Again, think
> about Pidgin: enter sends a message, shift-enter adds a newline.)
> Looking at the signals that are available, I don't see one that says
> what key has been pressed. I might be able connect a slot to
> textChanged() then do something like figure out what the cursor is and
> then look at the preceding character or something like that, but it
> seems much better to create a subclass of QPlainTextEdit and override
> the keyPressEvent() (or maybe keyReleaseEvent()?) function.

More information about the PyQt mailing list