[QT] 신호 조 전달 사용자 정의 데이터 구조

1118 단어 QT
구조 체 정의
struct myStruct
{
  int a;
  float b;
};

신호 조 를 통 해 이 구조 체 를 전달 하 다.
connect(this, SIGNAL(m_signal(myStruct)), this, SLOT(m_slot(myStruct)));

이렇게 하 는 것 은 통 하지 않 는 다. 정확 한 방법: Q 를 통 해DECLARE_METATYPE 사용자 정의 구조 체 설명
struct myStruct
{
  int a;
  float b;
};
Q_DECLARE_METATYPE(myStruct);

그리고 사용자 정의 구조 체 를 QVariant 로 대체 합 니 다.
connect(this, SIGNAL(m_signal(QVariant)), this, SLOT(m_slot(QVariant)));

신 호 를 보 내기 전에 사용자 정의 구조 체 를 QVariant 로 포장 합 니 다.
myStruct mstruct;
QVariant data;
data.setValue(mstruct);
emit signal_child(data);

슬롯 함수 에서 QVariant 해석
myStruct mstruct = data.value();

좋은 웹페이지 즐겨찾기