Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1062603
  • 博文数量: 264
  • 博客积分: 6005
  • 博客等级: 大校
  • 技术积分: 2798
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-08 20:15
文章分类

全部博文(264)

文章存档

2011年(42)

2010年(213)

2009年(4)

2008年(2)

2007年(3)

分类: C/C++

2010-10-16 08:45:09

//main.qml


//====================================================
// myclass.h
//====================================================
#include
#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;
};

//====================================================
// 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));
2. 在qml中可以看到rectangle的背景颜色使用的是 
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 qml
     test.changedColor();
}



 
阅读(4029) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

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