반응형
신호 / 슬롯 메커니즘으로 발신자 위젯을 얻는 방법은 무엇입니까?
하나 이상의 신호를 하나의 슬롯에 바인딩 할 수 있습니다 (그렇지 않습니까?). 그렇다면 어떤 위젯이 신호를 보내는 지 이해할 수있는 방법이 있습니까? sender
.NET에서 이벤트 인수 와 같은 것을 찾고 있습니다.
QObject::sender()
일을 할 것입니다.
QObject::sender()
다음 예와 같이 슬롯에서 사용 합니다.
void MainWindow::someSetupFunction( void )
{
...
connect( _foobarButton, SIGNAL(clicked()), this, SLOT(buttonPressedSlot()) );
}
void MainWindow::buttonPressedSlot()
{
// e.g. check with member variable _foobarButton
QObject* obj = sender();
if( obj == _foobarButton )
{
...
}
// e.g. casting to the class you know its connected with
QPushButton* button = qobject_cast<QPushButton*>(sender());
if( button != NULL )
{
...
}
}
예, 여러 신호를 하나의 슬롯에 연결할 수 있습니다. 이 경우 QSignalMapper
신호 소스를 구별하는 데 사용할 수 있습니다. 이 솔루션은 매개 변수가없는 신호로 제한됩니다. 여기 에서 예를 볼 수 있습니다 .
참조 URL : https://stackoverflow.com/questions/4046839/how-to-get-sender-widget-with-a-signal-slot-mechanism
반응형
'Nice programing' 카테고리의 다른 글
JavaScript에서 객체 배열을 하나의 객체로 어떻게 변환합니까? (0) | 2020.12.31 |
---|---|
선택한 UItableViewCell이 선택되면 파란색으로 유지됨 (0) | 2020.12.31 |
Windows에서 "make"를 설치하고 사용하는 방법은 무엇입니까? (0) | 2020.12.31 |
-1에서 시작하는 루프는 아무것도 인쇄하지 않습니다. (0) | 2020.12.31 |
SQLite3에서 "기본 값이 NULL 인 NOT NULL 열을 추가 할 수 없음"을 해결하는 방법은 무엇입니까? (0) | 2020.12.31 |