문제

나는 QListView 에서 구 QAbstractItemModel 목록->모델();

이 후에는 내가 원하는 연결하는 dataChanged 신호를 사용자 정의 어떤 qobject 로의 내:

 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 를 반환합니다,나는 cout 에 onText 기능,그러나 아무것은 이제까지 인쇄할 때 QListView 이 변경되었습니다.

도움이 되었습니까?

해결책

그것은 아마도 신호가 결코 방출되지 않았 음을 의미합니다. 전화 해보세요

model-> setData (model-> index (0, 0), qt :: editrole, 3.14);

그것이 당신의 슬롯을 호출하지 않으면 setData() 아마도 버그가 있고 방출되지 않습니다 dataChanged(QModelIndex,QModelIndex), 또는 그렇지 않으면 customObject_ 그 이후로 삭제되었습니다.

그렇지 않은 경우 더 많은 정보를 제공해야합니다.

다른 팁

아마도 당신의 기능에 ..

그러나 문제라면 기능에 따라 오류가 표시되어야합니다 ...


아마도이 신호는 방출되지 않았을 것입니다. 다른 신호와 연결하십시오 .. 그런 식으로 테스트 할 수 있습니다 ..

당신은 시도와 함께

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

?일명 확인 매개 변수를 참조로 전달됩니다.체크 이 튜토리얼.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top