문제

나는 새로운 QT GUI 프로그래밍과 내가 사용하는 QT 창조자입니다.문제는 내가 보고 나의 푸시버튼 및 선 편집할 때 사용자가 enter key.내 프로그램이 열리는 그룹 상자 및 사용자 수 있습니다 암호를 입력하고 확인을 누르거나 취소할 수 있습니다.

는 경우 사용자가 enter 키를 누를 때라인 편집가 포커 프로그램 것을 방출하는 두 번째 신호에 대한 QAbstractButton animateClick(); 그래서 그 상자가 열리고 묻는 사용자가 확인을 누르거나 취소,프로그램으로 계속한다면 사용자가 누르면 확인 버튼을 클릭합니다.

설정 버튼 사용자를 허용하 tab 키를 누르고 enter 키를 누릅니다.을 얻기 위해 이 기능을 설정서는 okbutton->setAutodefault(true); 고 cancelbutton 으로->setAutodefault(true);

나는 또한 lineEdit 에 대한 사용자에게 암호를 입력하고 enter 키를 누릅니다.내가 이것을 연결하여 반환을 누른 신호를 확인 버튼을 아래와 같습니다.

connect(lineEdit, SIGNAL(returnPressed()), okButton, SIGNAL(clicked()));

또한 연결을 시도하고 반 누르면 신호로 직접 슬롯 하지만 문제는 여전히 발생합니다.

connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(chkPassword()));

는 경우에는 사용자를 클릭에서는 okbutton 마우스로 또는 설정에서는 okbutton->setAutoDefault(false); 프로그램 기능을 그대로 해야 합니다.는지 알고 싶다면 이 기능을 사용하지 않도록 설정할 수 animateClick 신호를 발생하는 경우 라인을 편집을 포커스가 있습니다.

에 어떤 도움이 이 주시면 감사하겠습니다.

도움이 되었습니까?

해결책

려고 하지 않 연결 lineEditokButton, 즉댓글 이 라인에서 당신의 코드:

connect(lineEdit, SIGNAL(returnPressed()), okButton, SIGNAL(clicked()));

을 확인하는 경우 프로그램으로 원하는 대로 작동합니다.


또한,할 수 있습니다

okButton->setDefault(true);

이외에 당신 setAutoDefault() 호출에는 모두 버튼에 따라 정확히 무엇을 할 때 일어난 사용자 프레스 입력 다양한 물건에 초점입니다.보 이 답변 이에 대한 자세한 정보를 위해 주제입니다.


나는 가정 때문에,당신은 결코 그것을 언급하지 않는 전화 setDefault() 의 버튼이 있습니다.따라서, okButton 귀하의 첫 번째 버튼과 autoDefault 속성 true.즉 okButton 가되 대화의"버튼을 선택의 때마다"대화를 처리 입력 키를 누를 때는 일어나지 않았다 일부는 다른 autoDefault 단추(등 cancelButton 에서 당신의 경우).

때마다 어떤 위젯을 대화 상자에서 수신 입력 키를 누르지 않고 소비 이벤트,그 자체의 이벤트 종료되고 처리되 대화의 기본 버튼 처리 논리에있는 결과를 클릭하에 상기"단추의 선택".

QLineEdit 에는 사용되지 않습 multi-line 편집,그래서 그것은 아마 단지를 소비하지 않습니다 키를 눌러 이벤트 입력 (아직도 그것을 처리에 보내는 아웃 returnPressed() 신호).따라서,귀하의 의 연결 returnPressed() 끝까지 할 수 있는 일을 해야 하고, 또한, 기본 버튼 로직 끝나를 클릭하세요.

또한 체크 아웃 이 스레드에서는 Qt 프로젝트포럼 는 것 같은 문제를 해결하기 위해 다릅니다.

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