Question

I ai un QListView dont j'obtenir un QAbstractItemModel avec list-> modèle ();

Après cela, je veux connecter le signal dataChanged à un QObject personnalisé de moi:

 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; 

voici mon objet personnalisé:

 class CustomObject : public QObject
{
    Q_OBJECT

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

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

private:

}; 

Est-ce que je fais quelque chose de mal? L'appel QObject retourne vrai, j'ai Cout dans la fonction ONTEXTE, mais rien n'est jamais imprimé lorsque le QListView est modifié.

Était-ce utile?

La solution

Cela signifie probablement que le signal est émis jamais. Essayez d'appeler

Model-> setData (model-> index (0, 0), Qt :: EditRole, 3,14);

Si que l'on n'invoque pas votre emplacement, puis la mise en œuvre de setData() est probablement buggy et ne dégage pas de dataChanged(QModelIndex,QModelIndex), ou bien customObject_ a depuis été supprimé.

Si ni est le cas, vous devez nous donner plus d'informations.

Autres conseils

peut-être il y a et dans votre fonction ..

mais si elle était le problème, il devrait afficher une erreur par votre fonction ...


probablement ce signal n'est pas exprimés. Essayez de vous connecter avec un autre signal .. vous pouvez le tester comme ça ..

Avez-vous essayé avec

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

? alias assurez-vous que les paramètres sont passés par référence. Consultez ce tutoriel.

scroll top