Make only some part of text in QtextEdit Uneditable
-
Hello, I want to create a simple text editor with Pyside2 (or maybe c++ but Im perfer Python)
the Idea is editor read text line by line from a txt file and show them in a QTextEdit, then user can edit it and then go to next line
But I want the user not to be able to edit some part of text in QTextEdit
I show some exampleCustomer Name:$Name Age: $Age Phone Number: $Number
I want to user be able to freely edit all text part except those part after $
this is possible in QTextEdit? and if no there is any possible workaround? -
Hi,
I do not see an easy way do to that with QTextEdit.
What is the exact goal of that editing feature ?
-
@SGaist thanks for reply
I have some text that I want user be able to edit them; but in other hand I need to user don't be able to edit some static part of it
for example in following example user should only be able to edit "what is your name? - my name is" and "nice to meet you" partwhat is your name? - my name is $code. nice to meet you
now that its not possible with only QTextEdit there is any other way?
-
@saeid0034
If you attach aQRegularExpressionValidator
to aQTextEdit
/QLineEdit
and assign it to require the bit you want to keep --- like.*\$code.*
--- that is probab;ly the best you can do to enforce retaining what you want. -
@JonB thank you, it's could be a workaround for it but problem is with this method I only can tell the user that you remove some code (and maybe tell him to fix it) and can't actually stop the user from removing codes
-
@saeid0034
Yes, and that's the best you are going to be able to do, without some major rewriting of key presses inside aQTextEdit
, or splitting it into 3 separate segments in distinct widgets....Have you actually tried what I suggested? I have not; but when you use a validator for a number it actually stops you typing unacceptable characters, I don't know whether the regular expression one might stop the user from getting rid of
$code
in yours? -
Hi,
You might want to consider a different approach like providing a set of line edits that allows to change the specified text or maybe a list view / table view. Or if you want to show the whole text, have the text edit in read only mode and provide a dedicated editor when double clicking on the text that can be changed.
-
@JonB after some search I think its a good way to use it but sadly i cant find any good example of it in python (I can prove a set of line edits for every line, because some lines are so big and its make the program hard to work with)