1.導出Person類中的成員方法
2.具體導出過程
導出的方法有
1.使用Q_INVOKABLE
2.使用 槽機制
3.具體代碼
// person.h #ifndef PERSON_H #define PERSON_H #include <QObject> class Person : public QObject { Q_OBJECT public: explicit Person(QObject *parent = 0); Q_INVOKABLE void FirstEcho(void); public slots: void SecondEcho(void); }; #endif // PERSON_H |
// person.cpp #include "person.h" Person::Person(QObject *parent) : QObject(parent) { } void Person::FirstEcho(void) { // 簡簡單單打印一句話 qDebug("call Person::FirstEcho"); } void Person::SecondEcho(void) { qDebug("call Person::SecondEcho"); } |
// main.cpp #include <QtGui/QApplication> #include <QtDeclarative/QDeclarativeView> #include <QtDeclarative/QDeclarativeEngine> #include <QtDeclarative/QDeclarativeComponent> #include "person.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); qmlRegisterType<Person>("People",1,0,"Person"); //qmlRegisterType<Person>(); QDeclarativeView qmlView; qmlView.setSource(QUrl::fromLocalFile("../UICtest/UICtest.qml")); qmlView.show(); return a.exec(); } |
// UICtest.qml import Qt 4.7 import People 1.0 //如果是qmlRegisterType<Person>(); 導出就可以注釋這條 Rectangle { width: 640 height: 480 Person{ id: per;} MouseArea{ anchors.fill: parent; onClicked:{ per.FirstEcho(); per.SecondEcho(); } } } |
說明:
這里導出了兩個函數分別是FirstEcho 和SecondEcho 兩個函數,這兩個函數本別是使用
FirstEcho使用使用 Q_INVOKABLE導出,SecondEcho直接使用槽。
調用函數在控制臺輸出一些信息,這里是在鼠標點擊界面后出發的。