2009-07-29 24 views
2

私はlist-> model()でQAbstractItemModelを取得したQListViewを持っています。この後QObject :: QAbstractItemModelとの接続の問題

、私は私のカスタムQObjectをするdataChanged信号を接続したい:ここ

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; 

は私のカスタムオブジェクトです:

class CustomObject : public QObject 
{ 
    Q_OBJECT 

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

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

private: 

}; 

私が間違って何をやっていますか? QObject呼び出しはtrueを返します。私はonText関数にはcoutがありますが、QListViewが変更されたときは何も出力されません。

答えて

4

これはおそらく信号が放出されないことを意味します。モデル - > setData(model-> index(0、0)、Qt :: EditRole、3.14);を呼び出すようにしてください。

setData()の実装はおそらくバグであり、dataChanged(QModelIndex,QModelIndex)を放出しないか、それ以後customObject_が削除されている可能性があります。

いずれにも該当しない場合は、詳細をお知らせください。

+0

setDataは私のスロットを起動せず、customObjectは削除されず、別のスロットを試します。ありがとう。 –

+0

ご利用のご提案はありますか? –

+0

rowsInsertedに接続され、正常に動作します、ありがとう –

-1

あなたは

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

にしようとしましたか?パラメータが参照渡しされることを確認してください。 チェックthis tutorial

+0

OPが言った 'QObject :: connect()'は 'true'を返します。 –

0

多分あなたの関数で&が..です

それが問題だった場合、それは


はおそらく、この信号がemmitedされていません...あなたの関数によってエラーが表示されます。別の信号と接続しようとすると..そのようにテストすることができます。