Thank you Prashanth.

Your approach could be useful in *many* situations.

Thank you!

-Ed


On Feb 1, 2016, at 10:28 AM, Prashanth Udupa 
<prashanth.ud...@gmail.com<mailto:prashanth.ud...@gmail.com>> wrote:

Create a Event2Signal class as follows.

#include <QMap>
#include <QList>
#include <QEvent>
#include <QObject>

class Event2Signal : public QObject
{
    Q_OBJECT

public:
    Event2Signal(QObject *parent=0) : QObject(parent) { }
    ~Event2Signal() { }

    void filterEvent(QObject *o, QEvent::Type type) {
        if(!o) return;
        if( m_objectEventsMap.contains(o) ) {
            QList<QEvent::Type> &events = m_objectEventsMap[o];
            if(events.contains(type))
                return;
            events.append(type);
        } else {
            m_objectEventsMap[o].append(type);
            o->installEventFilter(this);
        }
    }

signals:
    void filteredEvent(QObject *o, QEvent *e, bool *filtered);

protected:
    bool eventFilter(QObject *obj, QEvent *e) {
        bool filtered = false;
        emit filteredEvent(obj, e, &filtered);
        return filtered;
    }

private:
    QMap<QObject *, QList<QEvent::Type> > m_objectEventsMap;
};

Now, lets say you want to take some action when user mouse-presses on a 
lineEdit. You can do this

Event2Signal *e2s = new Event2Signal(lineEdit);
e2s->filterEvent(lineEdit, QEvent::MouseButtonPress);
connect(e2s, &Event2Signal::filteredEvent, [=]() {
// Activate your form and do other things here..
});

You can reuse this method for handling other kinds of events in signal-slot 
style.

Hope this helps.

/ Prashanth

On Mon, 1 Feb 2016 at 21:41 Edward Sutton 
<edward.sut...@subsite.com<mailto:edward.sut...@subsite.com>> wrote:
I want to display a form with a numeric touch key pad plus a decimal point when 
user clicks on a QLIneEdit field.

I did not see any signal such as editingStarted.

What are approaches to implementing a custom data entry?

I am targeting Android and iOS with a QWidget app.

-Ed


This email and any files transmitted with it from The Charles Machine Works, 
Inc. are confidential and intended solely for the use of the individual or 
entity to which they are addressed. If you have received this email in error 
please notify the sender. Our company accepts no liability for the contents of 
this email, or for the consequences of any actions taken on the basis of the 
information provided, unless that information is subsequently confirmed in 
writing. Please note that any views or opinions presented in this email are 
solely those of the author and do not necessarily represent those of the 
company. Finally, the recipient should check this email and any attachments for 
the presence of viruses. The company accepts no liability for any damage caused 
by any virus transmitted by this email.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to