2017-10-09 4 views
1

안녕하세요, 오류 메시지와 관련하여 질문이 있습니다.Qt C++ 사용 중일 때 프로그램이 오류 메시지를 표시하지 못하도록 함

나는 OK (확인) 및 Cancel (취소) 버튼을 포함한 여러 개의 버튼이있는 창이 있습니다. 내 확인 단추는 차트 시리즈를 이동하는 프로그램을 실행하므로 파일에서 많은 양의 데이터를 읽고이 값을 이동해야합니다. 취소 버튼은이 작업을 취소합니다. 계산은 코드의 더 작은 부분으로 분리 될 수 없습니다.

이 방법은 적은 양의 데이터에는 적합하지만 큰 데이터 세트와 함께 사용하면 프로그램은 마치처럼 작동합니다. 그럼에도 불구하고, 모든 시간이 정상으로 돌아 오면 계산이 완료됩니다.

내가 같은 돈`t은 2 가지가 있습니다 : 나는 프로그램이 내 윈도우의 headerline을 변경 혼자 프로그램을 떠날 때)

  • 1 .... (keine Rückmeldung)는 의미 응답 없음. 텍스트 (keine Rückmeldung) 헤더에서 사라지고 모든 것이 정상으로 돌아 계산의 종료 후

    enter image description here

    . 계산을 실행하는 동안 나는 나의 창에서 "취소"버튼을 누르면하려고하면

  • 2), 추가 창이 나타납니다 :이

    enter image description here

    다시 혼자 프로그램을 떠나 때 계산이 끝났습니다.이 창은 사라졌습니다 (내 창 헤더에있는 (키 노트)). 그리고 모든 것이 정상으로 돌아옵니다.

문제 2를 해결하기 위해 "취소"버튼을 비활성화하려고했지만 도움이되지 않습니다. 어쨌든 취소 버튼이 실행되는 슬롯입니다.

내 질문은 : 사용자가 이러한 오류 메시지를보고 싶지 않으므로 프로그램을 표시하지 못하게 할 방법이 있습니까?

+0

생성하는 연속 차트입니까? 그렇다면 차트를 그릴 필요가있을 때 타이머를 사용하여 트리거 할 수 있습니다. 또는 CPU 전체를 소비하는 계산 부분 일 경우 다른 스레드로 옮기는 것이 편리 할 수 ​​있습니다. –

+1

스레드를 사용하고 싶지 않은 경우 가끔'processEvents()'를 호출 할 수 있습니다. 이러한 기능을 가진 클래스가 몇 가지 있습니다. 기본적인 사용법은 QCoreApplication입니다. –

+0

OP, 업데이트가 있습니까? – payloc

답변

1

비용 계산 작업에 대한 QThread 사용을 고려 감사드립니다. 또는 QConcurrentRunQFuture과 같은 다른 기본 제공 멀티 스레딩 유틸리티를 사용할 수도 있습니다.

그런 다음 백그라운드 기능의 상태를 쉽게 가져 와서로드 중 Window를 표시하거나 그 동안 다른 작업을 수행 할 수 있습니다.