Posted on 2011-08-04 21:25
RTY 閱讀(532)
評論(0) 編輯 收藏 引用 所屬分類:
轉載隨筆 、
QML
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直接使用槽。
調用函數在控制臺輸出一些信息,這里是在鼠標點擊界面后出發的。