어떤 qobject 로:연결된 문제 QAbstractItemModel
-
20-09-2019 - |
문제
나는 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 &)) );
?일명 확인 매개 변수를 참조로 전달됩니다.체크 이 튜토리얼.
제휴하지 않습니다 StackOverflow