2014-03-12 2 views
1

QTableWidget에 대한 사용자 지정 위임을 구현하여 QComboBox와 같은 셀 데이터를 편집합니다. 하나만 제외하고 모두 정상적으로 작동합니다.QTableWitget의 QComboBox가 제대로 작동하지 않습니다.

사용자가 콤보 상자에서 무언가를 선택하면이 변경 사항은 사용자가 다른 셀을 선택하는 동안 적용되지 않습니다. 사용자 지정 대리자가 호출하지 않는 QStyledItemDelegate :: setModelData() 메서드입니다. 따라서 사용자의 변경 사항은 적용되지 않습니다.

사용자가 선택을 한 후 콤보 상자에 값을 적용하려면 어떻게해야합니까?

답변

4

데이터를 모델에 쓸 때 대리인이 commitData 신호를 보내야합니다. 전화는 setModelData이됩니다. 위젯이 QComboBox::currentIndexChanged 신호를 내 보낸 경우 commitData을 내 보내야합니다.

+0

감사합니다. moc를 사용하지 않기 때문에 신호없이이 작업을 해결할 수 있습니까? – kaa

+0

분명히 옳은 대답입니다. Qt를 사용하는 동안 moc을 사용할 수없는 이유가 무엇인지 궁금합니다. Qt 5는 moc없이 신호와 슬롯을 사용할 수 있습니다. – evilruff

+0

Qt 5는 moc없이 신호와 슬롯을 사용할 수 있습니다. [Qt 5의 새로운 신호 슬롯 구문] (http://qt-project.org/wiki/New_Signal_Slot_Syntax)을 참조하십시오. –

관련 문제