I need to create a control that works like a LineEdit control, but when a user presses a key, it needs to overwrite rather than insert a character if there are characters in front of the cursor. The cursor also needs to appear as an underline rather than a vertical line. Can this be done with a LineEdit, or do I need to write my own control?
You can change it to overwrite by using the text changed signal. You will have to keep track of where the caret (cursor) is, delete the character, and move the caret back.
You can make the caret blink, and you can set caret_width in pixels, so you can make it a block like an old terminal; but I don’t know that you can edit it’s height to make it a line.
So if having a line is a deal-breaker, yes you have to make your own implementation. But you’re giving up a LOT of usability features. I recommend you read the documentation before making that decision.