Hi all!  I've got a Qt project that contains a code editor.  The code editor is based on QPlainTextEdit, with a bit of subclassing for syntax highlighting and things of that sort -- code editor-y functionality.  I doubt any of that subclassing is relevant to the question at hand.

In the language being edited, ^ is the exponentiation operator, so the user wants to type "x^2" and have that mean "x squared" in the language on question.  An issue recently arose where some of my users on Linux would type the "^2" and it would be turned into a superscripted 2 (!).  I guess this is some Linux feature to make it easier to type exponents and such.  Which is fine, but obviously inappropriate for a code editor; the user needs to be able to type "^2" and have it stay "^2" even if, in other apps on that platform, it appropriately gets changed to a superscipted 2.

Note that the QPlainTextEdit is plain text, of course; I don't think this is rich text somehow creeping into the plain text view.  I think, instead, that this Linux feature is turning "^2" into the Unicode superscripted 2 character (https://unicode-explorer.com/c/00B2).

My question: how can I customize my QPlainTextEdit subclass to prevent this?  Is there a hook or a setting somewhere?  I assume that, e.g., Qt Creator manages to prevent these kinds of shenanigans on all platforms, so maybe I'm asking somebody who knows the Qt Creator code well to advise on what they did there.  It is quite possible that these users could turn off this feature in a Linux prefs panel somewhere, but I don't want to ask them to have to do that; they should be able to have the OS feature enabled, and yet I should be able to turn it off in my code view.  I'd also like to not interfere with typing of accented characters, emojis, etc.; I just want to prevent this specific feature from activating in my code view, because the '^' character is significant and I don't want it to be re-interpreted by the OS

Thanks for any tips!

Cheers,
-B.

Benjamin C. Haller
Messer Lab
Cornell University

_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest

Reply via email to