2016-10-18 2 views
0

Qt가 처음입니다 ... JSON 파일을 기반으로 N 개의 버튼을 만듭니다. 버튼을 클릭 할 때 함수/슬롯을 실행해야하고 버튼을 눌렀다는 것을 알아야합니다. 내가 시도 :Qt는 args가있는 슬롯/함수에 연결합니다.

QObject::connect(button, &QToolButton::clicked, this, &base::show_brands(json, type)); 

show_brands (JSON, 유형) 기능/슬롯이 ... 하지만이 같은 인수를 보낼 수 있습니다 ... 가 어떻게 내 기능/슬롯 인수를 보낼 수 있습니까? 또는 버튼을 클릭했을 때 어떻게 함수를 실행할 수 있습니까?

+1

1) 슬롯에 인수를 전달하려면 신호를 통해 전달해야합니다. 2) 또는이 게시물을 참조하십시오. [링크] (http://stackoverflow.com/questions/5153157/passing-an-argument-to-a-slot) – Mikhail

+0

신호를 시도했지만 작동하지 않습니다 ... 어쩌면, 나는 그것을 잘못하고있다. 온라인으로 검색했고 발신자를 확인할 수 있습니다 ... 어떻게합니까? – vitor13almeida

답변

0

QSignalMapper를 사용하려고합니다.

http://doc.qt.io/qt-5/qsignalmapper.html#details

이는 소스 객체를 식별 할 수있는 하나의 방법으로 개체의 컬렉션 신호를 보낼 수 있습니다.

+0

신호를 시도했지만 작동하지 않습니다. 아마도 내가 잘못하고있는 것 같습니다. 온라인으로 검색했고 발신자를 확인할 수 있습니다 ... 어떻게합니까? – vitor13almeida

+0

이제 작동 중입니다 ... – vitor13almeida

+0

connect (button, SIGNAL (클릭), signalMapper, SLOT (지도))); signalMapper-> setMapping (button, new_type); connect (signalMapper, SIGNAL (mapped (QString)), this, SLOT (show_brands (QString))); – vitor13almeida