分类: C/C++
2010-10-16 08:45:09
#include
#include
#include
#include
class LTest : public QObject
{
Q_OBJECT
public:
LTest() {}
LTest(QDeclarativeContext *context)
: m_pContext(context)
{}
public slots:
void changedColor() {
m_pContext->setContextProperty("backgroundColor", QColor(Qt::red));
}
signals:
void data(QVariant data);
private:
QDeclarativeContext *m_pContext;
};2. 在qml中可以看到rectangle的背景颜色使用的是
//====================================================
// main.cpp
//====================================================
#include#include #include #include #include #include "myclass.h"
int main(int argc, char *argv[]) { QApplication app(argc, argv); QDeclarativeView view; QDeclarativeContext *context = view.rootContext(); context->setContextProperty("backgroundColor", QColor(Qt::yellow)); LTest test(context);// context->setContextProperty("test", &test); view.setSource(QUrl::fromLocalFile("main.qml")); view.show(); return app.exec(); }
======================================================
这个程序,官方网站有,我只是对做了一点点扩展,
1. 导出对象
// 在c++中创建一个对象
LTest test(context);
// 导出一个对象test到qml中
context->setContextProperty("test", /*qml 中能直接使用这个名访问C++中的对象*/ &test /*c++的对象名*/);
2. 导出变量, backgroundColor context->setContextProperty("backgroundColor",
QColor(Qt::yellow));
backgroundColor
color: backgroundColor
只要在c++中改变 backgroundColor 的值,qml中的背景颜色也会自动变化。
3. qml中调用c++中的函数(对象的函数,必须是声明为 slot 的函数)。
public slots:
void changedColor() {//c++中定义的插槽函数
m_pContext->setContextProperty("backgroundColor", QColor(Qt::red));
}
qml中访问该函数,onClicked: {// call the c++'s function,from qmltest.changedColor();
}
chinaunix网友2010-10-17 01:24:27
http://zhaoqing.am52.cn/ 肇庆丝足/丝袜按摩 http://huizhou.am52.cn/ 惠州丝足/丝袜按摩 http://meizhou.am52.cn/ 梅州丝足/丝袜按摩 http://shanwei.am52.cn/ 汕尾丝足/丝袜按摩 http://heyuan.am52.cn/ 河源丝足/丝袜按摩 http://yangjiang.am52.cn/ 阳江丝足/丝袜按摩 http://qingyuan.am52.cn/ 清远丝足/丝袜按摩 http://dong.am52.cn/ 东莞丝足/丝袜按摩 http://zhongshan.am52.cn/ 中山丝足/丝袜按摩 http://chaozhou.am52.cn/ 潮州丝足/丝袜按摩 http://jieyang.am52.cn/ 揭阳丝足/丝袜按摩 http://yunfu.am52.cn/ 云浮丝足/丝袜按摩 浙江 http://hangzhou.am52.cn/ 杭州丝足/丝袜按摩 http://jiaxing.am52.cn/ 嘉兴丝足/丝袜按摩 http
chinaunix网友2010-10-16 15:21:36
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com