IP Address Editor with popup numberpad
-
wrote on 24 Apr 2017, 20:51 last edited by
I am creating an IP Editor widget by using 4 LineEdits. When you click on a LineEdit, a numberpad pops up for touch interfaces. My question is, how can I make the code general? For example, for single LineEdits, I can have a SIGNAL/SLOT
connect(lineedit, SIGNAL(sendData(QString), this, SLOT(receiveData(QString));
and then in my receiveData function it'd look something like:
void IPEditor::receiveData(const QString &text) { QLineEdit *mask = qobject_cast<QLineEdit*>(sender()); if(text) mask->setText(text); }
How would I go about doing so with 4 LineEdits?
PS - I will also be accepting keyboard inputs, but I figure I'll figure that part out once I get the touchpad working. Thanks!
-
I am creating an IP Editor widget by using 4 LineEdits. When you click on a LineEdit, a numberpad pops up for touch interfaces. My question is, how can I make the code general? For example, for single LineEdits, I can have a SIGNAL/SLOT
connect(lineedit, SIGNAL(sendData(QString), this, SLOT(receiveData(QString));
and then in my receiveData function it'd look something like:
void IPEditor::receiveData(const QString &text) { QLineEdit *mask = qobject_cast<QLineEdit*>(sender()); if(text) mask->setText(text); }
How would I go about doing so with 4 LineEdits?
PS - I will also be accepting keyboard inputs, but I figure I'll figure that part out once I get the touchpad working. Thanks!
wrote on 24 Apr 2017, 21:02 last edited byI think you should have a look to QSignalMapper
However, I am wondering why you are going for four lineedits? A lineedit per three digit part of an ipv4 address?
If that is your idea, you could do also with an input mask. -
I think you should have a look to QSignalMapper
However, I am wondering why you are going for four lineedits? A lineedit per three digit part of an ipv4 address?
If that is your idea, you could do also with an input mask.wrote on 25 Apr 2017, 16:32 last edited byI will have to research QSignalMapper to see if that will work for my purpose. I am creating a custom IP Editor plugin for a project at work, which needs to let the user define each input mask individually, hence the 4 lineedits. The input mask doesn't work because of the popup numberpad. I will look into SignalMapper and report back. If anyone else has suggestions, it would be much appreciated.
-
I think you should have a look to QSignalMapper
However, I am wondering why you are going for four lineedits? A lineedit per three digit part of an ipv4 address?
If that is your idea, you could do also with an input mask.wrote on 1 May 2017, 19:07 last edited byI'm still confused about QSignalMapper. I've searched, and it looks like it'd benefit me on the touchscreen numberpad portion, but am unsure how to go about it with the 4 lineedits. There is this example: http://stackoverflow.com/questions/9306335/an-ip-address-widget-for-qt-similar-to-mfcs-ip-address-control. The top voted answer would be perfect if I was just accepting keyboard inputs, but since I'm also doing a touchscreen numberpad, I'm confused as to how to correctly implement it. Does that make sense?
-
I'm still confused about QSignalMapper. I've searched, and it looks like it'd benefit me on the touchscreen numberpad portion, but am unsure how to go about it with the 4 lineedits. There is this example: http://stackoverflow.com/questions/9306335/an-ip-address-widget-for-qt-similar-to-mfcs-ip-address-control. The top voted answer would be perfect if I was just accepting keyboard inputs, but since I'm also doing a touchscreen numberpad, I'm confused as to how to correctly implement it. Does that make sense?
wrote on 2 May 2017, 08:09 last edited byI do not understand why you actually require 4 lineedits for one IP address input. The natural assumption is that you are trying to retrieve each field individually. The more natural, but also more complicated way in view of a perfect solution, seems a solution with one lineedit and an input mask.
There is somewhere in the forum a thread, which presumably I have even started, but can't find anymore. It is a couple of years old and was probably taken over into the new system.
Anyway there has been a response with an QRegExp validator expression. It works reasonably well, but has some visible flaws. IMHO it would be a better start, but your apporach may be more elegant after you have negotiated around your issues.Concerning touchscreen keyboard w/o physical keyboard, I have no experience at all and therefore, I have to bail out.
-
wrote on 31 May 2017, 15:30 last edited by
I am going to mark this topic as Solved. I used a lot of the methodologies from this topic. I used 4 lineedits because I'm building a plugin and I want the user to be able to enter each input mask individually.