-
qml使用c++类
例:
qmlRegisterType<FaceVerifyCameraThread>("FaceVerifyCameraThread", 1, 0, "FaceVerifyCameraThread");
FaceVerifyCameraThread 继承 QObject
qml中引入:
import FaceVerifyCameraThread 1.0
2.qml中调用c++对象方法
例:
class QmlChannel : public QObject
方法:Q_INVOKABLE
Q_INVOKABLE QString get_local_ip();
调用:
label_ip.text = qml_channel.get_local_ip()
3.qml中使用c++中声明的对象
c++中
g_pAppEngine->rootContext()->setContextProperty("stu_man_camera_thread", m_pStuManCameraThread);
qml中使用
stu_man_camera_thread.start_video(30, label_photo)
4.c++中调用qml中对象方法
c++:
QMetaObject::invokeMethod(m_pPageObj, "setQuestionColumns", Q_RETURN_ARG(QVariant, retVar), Q_ARG(QVariant, cntVar));
qml:
function setQuestionColumns(columnCnt)
5.c++中修改qml对象属性
QmlWelcomeChannel::SelectedStudentUpdate中
m_pLabel_seat->setProperty("text", pStudent->Seat());
m_pCheckBox_data->setProperty("checked", true);