Frage

Ich habe eine QListView von dem ich ein QAbstractItemModel mit Listen- erhalten> Modell ();

Danach mag ich das datachanged Signal zu einem benutzerdefinierten QObject von mir verbinden:

 if( QObject::connect(model, SIGNAL(dataChanged (const QModelIndex , const QModelIndex ) ),
                        customObject_,SLOT(onText(const QModelIndex , const QModelIndex )) ) )
     cout << "SIGNAL SLOT connection successful" << endl;
 else
     cout << "SIGNAL SLOT connection ERROR" << endl; 

hier ist mein benutzerdefiniertes Objekt:

 class CustomObject : public QObject
{
    Q_OBJECT

public:
    CustomObject (QObject *parent);
    ~CustomObject ();

public slots:
    void onText(const QModelIndex & topLeft, const QModelIndex & bottomRight );

private:

}; 

Bin ich etwas falsch? Der QObject Aufruf zurückkehrt wahr, ich habe eine cout in der ONTEXT Funktion, aber nichts ist jemals gedruckt, wenn die QListView geändert wird.

War es hilfreich?

Lösung

Das bedeutet wahrscheinlich, dass das Signal nicht ausgegeben wird. Versuchen Aufruf

modell-> setData (modell-> Index (0, 0), Qt :: editrole, 3,14);

Wenn das eine nicht invoke Ihr Schlitz tut, dann ist die Implementierung von setData() wahrscheinlich Buggy ist und nicht dataChanged(QModelIndex,QModelIndex) emittieren, sonst customObject_ da gelöscht wurde.

Wenn weder der Fall ist, müssen Sie uns weitere Informationen geben.

Andere Tipps

vielleicht gibt es & in Ihrer Funktion ..

aber wenn es das Problem ist, sollte es einen Fehler, indem Sie Ihre Funktion anzuzeigen ...


wahrscheinlich wird dieses Signal nicht ausgestrahlte. Versuchen Sie es mit einem anderen Signal zu verbinden .. Sie es so testen können ..

Haben Sie versucht mit

QObject::connect(model, SIGNAL(dataChanged (const QModelIndex &, const QModelIndex &) ),
                    customObject_,SLOT(onText(const QModelIndex &, const QModelIndex &)) );

? aka stellen Sie sicher, werden die Parameter als Referenz übergeben. Prüfen Sie dieses Tutorial .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top