2016-08-02 2 views
0

TableView를 사용해야하는 프로젝트 작업을 시작했습니다. 내 테이블에는 3 개의 열이 있으며 마지막 열에는 comboBox가 있습니다. Delegate 사용하기 나는 comboBox를 설정하고 comboBox의 인덱스 상태가 변경되면 신호를 검색 할 수있었습니다. 문제는 내가 마녀 콤보 상자에서 신호를 방출 식별 할 수 없다는 것입니다.대표자의 신호

만약 내가 mainWindow 신호를 comboBox의 QString 아주 나쁜 것 같습니다. 나는 해결책을 생각하여 각 행에서 comboBox에 행 인덱스를 삽입하려고했습니다. 행 + 이름과 같은 것입니다.

나는 등 같은 다른 게시물에서 조언을 사용하여 연결을 시작 :

signals: 
    void boxDataChanged(const int & str); 

에서 생성 에디터 :

QComboBox * editor = new QComboBox(parent); 
    editor->addItem("This"); 
    editor->addItem("is"); 
    editor->addItem("nice"); 

    connect(editor, SIGNAL(currentIndexChanged(int)), this, SIGNAL(boxDataChanged(int))); 

    return editor; 

와 같은 전화 : 이것은

connect(mydelegate, &Delegate::boxDataChanged, [=](const int & str) 
{ 
     qDebug() << str; 
}); 

을하고있다 좋은하지만 나도 마녀 행에서 알 필요가있다.

답변

1

문제는 마녀 콤보 상자에서 확인할 수 없습니다. 신호는 에서 발췌되었습니다.

QObject::sender을 사용하면 신호 발신자를 얻을 수 있습니다. 원하는 유형으로 변환 할 수있는 QObject을 반환합니다.