2016-09-29 2 views
1

디자인 모드에서 푸시 버튼을 Qt Creator 3.3.1에서 생성하고 디자이너에서 프레스 된 신호()를 사용하여 버튼을 연결합니다. 그것은 잘 작동하지만 때로는 눌려진 이벤트에서 pushButton을 설정하여 stacketWidget의 인덱스를 숨기거나 표시하거나 변경하면 pressed() 신호가 연속적으로 두 번 반복됩니다. 코드에 수동으로 연결할 필요는 없지만 모두 디자이너가 자동으로 수행합니다. 나는 임베디드 Qt 4.8.6을 사용하고있다. 감사합니다Qt 불필요한 푸시 버튼 누름 신호의 이중 실행

void myclass::on_pushButton_1_pressed() 
{ 

qDebug("Pressed event"); 
ui->pushButton_2->hide(); //if I comment this line the pressed signal is not repeated twice 

} 
+0

나는'pressed' 신호가 조금 특별한 것을 상상할 수를 해결하려면 슬롯 이름을 바꿉니다. 그것은 잠재적으로 기본 운영 체제에 의한 자발적인 이벤트이기 때문에 다른 플랫폼에서 다르게 작동 할 수 있습니다. 예 : 버튼을 클릭하고, 다시 뽑아서 다시 흘려 보내면, 적어도 두 번 (Windows에서는) 튕겨 나옵니다. 특히 UI를 수정할 때, 나는 이것이 또 다른 시간에 시작되었다고 상상할 수 있습니다. 근데 근본적으로 너는 운이 좋을 것 같아.하지만 정말로 '눌린'신호가 필요한거야? '클릭 한'작업도하지 않습니까? –

답변

4

Qt 디자이너 양식에는 autoconnect이라는 기능이 있습니다. on_{ObjectName}_{SignalName} 슬롯이 있으면 양식 위젯의 신호를 자동으로 연결합니다.

슬롯이 디자이너에서 연결 한 번 두 번, 자동 연결 한 번 두 번 연결됩니다.

어느 것이 디자이너의 연결을 제거하거나 추가 전화

+0

디자이너에서 연결을 제거하려면 어떻게해야합니까? Qt Creator 3.3.1에서만 작동합니다. – Memphis

+0

조금 이상합니다. 눌려진 신호에서만 발생합니다. 해제 된 신호와 클릭 신호는이 문제를 겪지 않습니다. – Memphis

+0

나는 디자이너에서 Drag & Drop을 통해 신호를 연결했다고 가정합니다. 이 경우인가요? 그렇다면 신호 및 슬롯 편집 모드에서 연결을 선택하고 제거 할 수 있습니다 (또는 하단의 신호 및 슬롯 패널을 통해). –