Qt: QString을 사용하여 C 신호를 QML 슬롯에 연결
Qt에서는 C에서 QML의 슬롯으로 신호를 보내는 것이 간단할 수 있습니다. 그러나 QString을 매개변수로 전달하는 경우 몇 가지 문제가 발생할 수 있습니다.
문제:
C 객체(myObj)의 신호를 QML 파일의 슬롯(updateViewWithItem). 슬롯이 QString 매개변수를 수신하도록 정의되었지만 "해당 슬롯 QDeclarativeRectangle_QML_2::updateViewWithItem(QString)"이라는 오류와 함께 연결이 실패합니다.
해결책: 연결 사용
기존 C 스타일 슬롯 신호 연결을 사용하는 대신 Qt는 이 특정 시나리오에 연결 사용을 제안합니다.
단계:
QML에서 C 객체 노출:
QML 파일에서 컨텍스트 속성을 설정하여 C 객체(myObj)를 QML에 액세스할 수 있도록 합니다.
<code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
신호 정의:
신호는 다음과 같이 정의해야 합니다.
<code class="cpp">finishedGatheringDataForItem(QString signalString)</code>
QML 연결 만들기:
QML 파일 내에 연결을 처리할 Connections 객체를 추가합니다.
<code class="qml">Connections { target: YourObject onFinishedGatheringDataForItem: { qmlString = signalString } }</code>
Connections를 사용하면 C와 QML 사이에 새로운 브리지를 효과적으로 설정하여 다음을 통과할 수 있습니다. QML 슬롯에 대한 매개변수인 QString.
위 내용은 C 신호에서 QML 슬롯으로 QString을 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!