32 개의 슬롯을 선언하지 않고 32 개의 버튼의 pressed () 신호를 단일 함수에 어떻게 연결하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1801167

  •  05-07-2019
  •  | 
  •  

문제

위젯이 있고 내부에는 32 개의 버튼이 있습니다. 눌린 버튼에 따라 매개 변수를 호출하기 위해 각 버튼의 누락 () 신호를 슬롯에 연결해야합니다. 지금 나는 on_qpushbuttonname_pressed ()의 형태로 32 개의 슬롯을 추가함으로써 그렇게했다. 그러나 그것은 많은 슬롯이있다. 더 작은 방법이 있는지 궁금합니다. 비슷한 작업을 수행했지만 사용자 정의 위젯으로 작업하고 있었기 때문에 클래스 코드에서 새 신호 만 만들 수 있었지만 단일 버튼에 대한 사용자 정의 위젯을 작성하지 않으려 고합니다.

도움이 되었습니까?

해결책

QsignalMapper 클래스를 사용하십시오. 문서 - http://doc.qt.io/qt-5/qsignalmapper.html - 당신이 원하는 것과 거의 가까운 예를 가지고 있습니다.

다른 팁

또 다른 가능성 : 단 하나의 슬롯을 만들고 호출합니다 sender() 결과를 켜고 있습니다.

Rohan이 언급했듯이 QsignalMapper는 권장 솔루션입니다. sender ()는 약간의 해킹이기 때문입니다. 그것의 장점은 사용하기 쉽다는 것입니다.

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