Qt GUI 응용 프로그램에 유틸리티 클래스가 있습니다. 그러나 내 편의 클래스에서 QMessageBox::critical()
, warning()
등을 호출하려고했습니다. 클래스는 QWidget
이 아니므로 this
을 부모로 전달할 수 없습니다. 그러나, 내 클래스는 QObject
에서 서브 클래스 화되었으므로 신호 및 슬롯과 같은 것을 실행할 수 있습니다. 그래서이 문제를 해결하려면 (가능한 경우) Static API 대신 속성 API를 살펴보아야합니까?QMessageBox 호출 방법 QWidget 하위 클래스 외부의 정적 API
클래스 선언 :
class NetworkManager : public QObject
그리고 여기에 실패 정적 API 호출의 예 : 나는, 프로퍼티 기반 API 메시지 상자를 구축한다면
QMessageBox::critical(this, tr("Network"), tr("Unable to connect to host.\n"),
QMessageBox:Ok | QMessageBox:Discard);
을 그래서, 그것은 것 어떻게 든 QObject
에 전화 할 수 있습니까? Property Based API를 실제로 사용하지는 않았지만 문서에서 이벤트 루프 (즉, exec()
)를 사용하는 것으로 보입니다.
'nullptr '을 전달할 수 있다고 생각 했습니까? 대화 상자는 어쨌든 정적 편의 메소드에 대한 어플리케이션 모달로 고정됩니다. – cmannett85
그건 실제로 재미있는 생각입니다. 10 개 이상의 메시지 상자를 다시 작성하는 데 익숙하지 않은 API를 사용하는 것보다 훨씬 쉽습니다. P – ContingencyCoder