QObject :: connecter des problèmes avec QAbstractItemModel
-
20-09-2019 - |
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é.
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.