質問

私は)私は(リスト - >モデルとQAbstractItemModelを得、そこからQListViewを有する;

この後、私は私のカスタム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の呼び出しは、私がonText機能でCOUTを持って、trueを返しますが、QListViewが変更されたときには何も今までに印刷されません。

役に立ちましたか?

解決

それはおそらく信号が放出されないことを意味します。呼び出し試してみてください。

モデル - >のsetData(モデル - >インデックス(0、0)、Qtの:: EditRole、3.14);

1つはあなたのスロットを起動しない場合は、

は、その後、setData()の実装は、おそらくバグがあるとdataChanged(QModelIndex,QModelIndex)を放出しない、または他のcustomObject_が以来削除されています。

どちらのような場合は、

、あなたは私たちに多くの情報を与える必要があります。

他のヒント

多分&あなたの関数であり..

が、それが問題だった場合、それはあなたの関数でエラーが表示されます...

<時間>

おそらくこの信号はemmitedされていません。別の信号を接続してみます..あなたはそのようにそれをテストすることができます..

あなたがしようとしました。

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

?別名パラメータが参照渡しされていることを確認してください。 このチュートリアルを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top