사용자가 혼란 스럽기 때문에 사용자가 많은 항목을 가지고있을 때 일부 항목을 계산하고 메시지를 보내려고합니다.QErrorMessage가 계속 나타납니다.
그러나 다른 한편으로는 사용자는이 경고를 비활성화 할 수있는 옵션을 가져야합니다.
그래서 내가 QErrorMessage
을 사용하려고했습니다.
그러나 내 QErrorMessage
은 표시하지 않을 때도 계속 표시됩니다 (확인란을 선택 취소 한 경우).
void checkNumber(int const &n)
{
if(n > CriticalNumber)
{
QErrorMessage msg(this);
msg.showMessage("too much!");
}
}
가 난 아무것도 잊지 않았다
:이 내가 쓴 짧은 코드는?
한 번 체크 박스를 선택 취소 한 후 재미있는 것은,이 모든 다음 호출을 선택 해제됩니다 ...
// 편집 : QErrorMessage
가 구성원 인 경우
이 오류도 발생 내 모든 호출에서 초기화되지 않았습니다.
// EDIT2 : 지금까지
나는 나는 나는 QString::arg
를 사용하는 경우이 오류는 발생 것을 확신. 이 코드는 예제 코드에서 사용하지 않았습니다. 아무런 차이가 없다고 생각했기 때문입니다. 그래서 예는 다음과 같아야합니다
void showError(int const &n, QErrorMessage *msg)
{
msg->showMessage(tr("%1 is too big").arg(n));
}
showError()
는 이전의 경우 문에서 호출된다.
, 당신의'msg' 객체 것이다 스코프를 벗어나면 파괴 될 것입니다. 그냥 화면에 깜박이면됩니다. 체크 박스를 선택 해제 할 충분한 시간이 있습니까? 그 외에는 문제를 재현 할 수 없습니다. 아마도 [SSCCE] (http : // sscce. org)가 도움이 될 것입니다. – thuga
'QErrorMessage'는'OK '를 클릭 할 때까지 화면 상에 머물러 있습니다. 다음에 나타날 때 체크 박스는 체크되어 있지 않습니다. – user2699453
적어도 코드는 그렇지 않습니다. 당신이 제공 한 스 니펫. ['QErrorMessage :: showMessage'] (http://qt-project.org/doc/qt-5/qerrormessage.html#showM essage)가 즉시 반환됩니다. 화면에 그대로 있으면'QDialog :: exec'을 어딘가에 호출해야합니다. – thuga