add QLabel into QLineEdit
-
@mrjj Do you have an idea how to make it work with an input mask?
@marlenet15
yes using escape
\D\A\T\E:AAAAA-AAAAA-AAAAA-AAAAA-AAAAA
it shows as "Date:" and u cant change it.
so should be able to show an actual date. -
@marlenet15
yes using escape
\D\A\T\E:AAAAA-AAAAA-AAAAA-AAAAA-AAAAA
it shows as "Date:" and u cant change it.
so should be able to show an actual date.wrote on 20 Jan 2016, 20:01 last edited by@mrjj So the actual text "Date:" can be changed to "Jan 19 2016" or any format of date?
-
@mrjj So the actual text "Date:" can be changed to "Jan 19 2016" or any format of date?
@marlenet15
yes
its not pretty but
\J\a\n\ \1\9\ \2\0\1\6:AAAAAAdoes look correct.
-
@marlenet15
yes
its not pretty but
\J\a\n\ \1\9\ \2\0\1\6:AAAAAAdoes look correct.
i also think the input mask is actually the best way, or maybe even better a custom QValidator.
But to just add something to the (rather ugly) QLabel idea: You could use QLineEdit::setTextMargins() to move the left-most position of the cursor. -
@marlenet15
yes
its not pretty but
\J\a\n\ \1\9\ \2\0\1\6:AAAAAAdoes look correct.
wrote on 20 Jan 2016, 20:15 last edited by marlenet15@mrjj So right now in my code the date that is going into the QLineedit is the current date. So I would need to separate the string and make sure to add \ ? Also what do the A's mean? the ones you put in your example?
-
i also think the input mask is actually the best way, or maybe even better a custom QValidator.
But to just add something to the (rather ugly) QLabel idea: You could use QLineEdit::setTextMargins() to move the left-most position of the cursor.wrote on 20 Jan 2016, 20:17 last edited by@raven-worx yes I agree the input mask Is the best way to go. However, it's a new concept for me since I never heard of it. That is why I am very confused to how it works.
-
@raven-worx yes I agree the input mask Is the best way to go. However, it's a new concept for me since I never heard of it. That is why I am very confused to how it works.
@raven-worx said:
setTextMargins
+1 That would work for custom control.yes, you would need to put \ into your date.
the AAAA is input specifier .
Go to a LineEdit and find inputmask property and press F1 to read about them. -
@raven-worx said:
setTextMargins
+1 That would work for custom control.yes, you would need to put \ into your date.
the AAAA is input specifier .
Go to a LineEdit and find inputmask property and press F1 to read about them.wrote on 20 Jan 2016, 20:24 last edited by marlenet15@mrjj So if the user is allowed 100 characters for the QLineEdit do I have to put 100 A's?
-
@mrjj So if the user is allowed 100 characters for the QLineEdit do I have to put 100 A's?
@marlenet15 erhm, yes I think. maybe there is way
but inputmasks are normally used for short input like date
or iP etc -
@mrjj So if the user is allowed 100 characters for the QLineEdit do I have to put 100 A's?
@marlenet15
if you are familiar with regular expressions you might want to use QRegExpValidator which will result in the same behavior
And set it on the line edit. -
@marlenet15
if you are familiar with regular expressions you might want to use QRegExpValidator which will result in the same behavior
And set it on the line edit.@raven-worx
oh. So QRegExpValidator can have static text? -
@raven-worx
oh. So QRegExpValidator can have static text?@mrjj
Of course, a regular expression can have a static text included -
@mrjj
Of course, a regular expression can have a static text included@raven-worx
yes, but i didn't know it would show in lineEdit as Validator sounds so none visual :) -
@mrjj
Of course, a regular expression can have a static text includedwrote on 20 Jan 2016, 21:00 last edited by@raven-worx Can you please show me an example of that? I have never heard of that and I googled it and I didn't find anything about that :)
-
@raven-worx Can you please show me an example of that? I have never heard of that and I googled it and I didn't find anything about that :)
@marlenet15
you can see how to use QRegExpValidator in the link i've posted.
Use a RegExp similiar to this one. There are tons of material on the web about regexp to learn.QRegExp("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
This regexp is surely not perfect, but enough to get an idea and continue to learn the syntax i guess.
-
@marlenet15
you can see how to use QRegExpValidator in the link i've posted.
Use a RegExp similiar to this one. There are tons of material on the web about regexp to learn.QRegExp("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
This regexp is surely not perfect, but enough to get an idea and continue to learn the syntax i guess.
@raven-worx
If I may interject,[Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec]
is not okay for matching one should use a (non-capturing) group instead. i.e:(?:Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec)
. -
wrote on 21 Jan 2016, 08:49 last edited by
My two cents: if you have Qt5, consider using QRegularExpressionValidator and QRegularExpression instead, since the motor has been remarkably improved.
-
@marlenet15
you can see how to use QRegExpValidator in the link i've posted.
Use a RegExp similiar to this one. There are tons of material on the web about regexp to learn.QRegExp("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))");
This regexp is surely not perfect, but enough to get an idea and continue to learn the syntax i guess.
wrote on 21 Jan 2016, 16:53 last edited by marlenet15@raven-worx I just tried it and the amazing thing is the cursor moves automatically moves to the right of the date. However, I can still edit the date and I don't want it to be edited whatsoever. When the mouse clicks the QLineEdit, I want it so that the cursor starts right after the date text. :( Is it possible for this? Thank you so much for you help!
This is the code I used:
QRegExp rx("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))"); QValidator *validator = new QRegExpValidator(rx, this); ui->lineEdit->setValidator(validator); QDate date = QDate::currentDate(); QTime time = QTime::currentTime(); ui->lineEdit->setText(date.toString("MMM dd yyyy")+" "+time.toString("hh:mm:ss"));
-
@raven-worx I just tried it and the amazing thing is the cursor moves automatically moves to the right of the date. However, I can still edit the date and I don't want it to be edited whatsoever. When the mouse clicks the QLineEdit, I want it so that the cursor starts right after the date text. :( Is it possible for this? Thank you so much for you help!
This is the code I used:
QRegExp rx("Comments\\: ([Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Nov|Dec] [0-3]?[0-9] [0-9]{4}\\: (.+))"); QValidator *validator = new QRegExpValidator(rx, this); ui->lineEdit->setValidator(validator); QDate date = QDate::currentDate(); QTime time = QTime::currentTime(); ui->lineEdit->setText(date.toString("MMM dd yyyy")+" "+time.toString("hh:mm:ss"));
Try this:
QString dateTimeStr = QDateTime::currentDateTime().toString("MMM dd yyyy hh:mm:ss"); QString rxStr("Comments\\: %1\\: (.+)"); QRegExp rx( rxStr.arg(dateTimeStr), Qt::CaseSensitive, QRegExp::RegExp2 ); QValidator *validator = new QRegExpValidator(rx, this); ui->lineEdit->setValidator(validator);
-
Try this:
QString dateTimeStr = QDateTime::currentDateTime().toString("MMM dd yyyy hh:mm:ss"); QString rxStr("Comments\\: %1\\: (.+)"); QRegExp rx( rxStr.arg(dateTimeStr), Qt::CaseSensitive, QRegExp::RegExp2 ); QValidator *validator = new QRegExpValidator(rx, this); ui->lineEdit->setValidator(validator);
wrote on 21 Jan 2016, 21:42 last edited by@raven-worx I can still edit the date_time stamp :(
19/32