아래와 같이 QMainWindow에서 상속받은 메인 클래스 GUIApplication이있는 Qt 애플리케이션이 있습니다. GUI에는 시작 버튼, 중지 버튼 및 QGraphicsScene이 있습니다.순환 의존성을 피하는 Qt
내 응용 프로그램은 직렬 포트 및 기타 자료에서 데이터를 읽고받은 내용에 따라 QGraphicsScene을 그립니다.
내 메인 GUI 클래스는 시작 버튼 등을 눌러 초기화해야하므로 내 직렬 포트 클래스에 대해 알고 있습니다. 괜찮습니다. 그러나 직렬 포트 클래스는 데이터 및 기타 자료 수신시 QGraphicsScene을 업데이트해야하므로 내 GUI 클래스와 통신 할 수 있어야합니다.
제 질문은 제 시리얼 포트 클래스가 GUI 클래스에 대해서도 잘 알고 있지 않다는 것입니다. 이것은 두 클래스 사이의 순환 의존성의 형태가 아닌가? 직렬 포트 클래스의 멤버에게 GUI 클래스에 대한 포인터를 가질 계획입니다. 이것이 유일한 방법입니까, 아니면 클래스를 분리하기 위해 직렬 포트 클래스에 콜백을 등록해야합니까? 어떤 도움을 주셔서 감사합니다.
// GUI class
#include "MySerial.h "
class GUIApplication : public QMainWindow
{
Q_OBJECT
public:
//.........
는
// Serial port class
#include "GUIApp.h "
class MySerial
{
public:
//..............
//write something on GUI`
아마도 주제는 아니지만 ... [QSerialPort'] (http://doc.qt.io/qt-5/qserialport.html)를 사용하고 GUI 요소 (예 :) 적절한 신호에 연결 하시겠습니까? –
주제를 벗어납니다. 다른 클래스에서도 GUI를 업데이트해야합니다. 나는 직렬 포트를 언급해서는 안됩니다. – Engineer999