青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

QML與c++交互學習筆記(五) 導出組合類

Posted on 2011-08-04 21:30 RTY 閱讀(512) 評論(0)  編輯 收藏 引用 所屬分類: 轉載隨筆QML

1.導出Person類,并且一個PersonGroup類,PersonGroup類是Person的一個組


2.具體導出過程

1.通過屬性來實現,具體的請看代碼


3.具體代碼



// person.h
#ifndef PERSON_H
#define PERSON_H
#include <QObject>
#include <QDeclarativeListProperty>
#include <QList>
class Person : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString name READ getName WRITE setName NOTIFY sendNameChange)
    Q_PROPERTY(int age READ getAge WRITE setAge NOTIFY sendAgeChange)
public:
    explicit Person(QObject *parent = 0);
    QString getName(void) const;
    void setName(const QString& name);
    int getAge(void);
    void setAge(int age);
signals:
    void sendNameChange(void);
    void sendAgeChange(void);
private:
    QString     m_Name;
    int         m_Age;
};
class PersonGroup : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QDeclarativeListProperty<Person> members READ members)
public:
    explicit PersonGroup(QObject *parent = 0);
    QDeclarativeListProperty<Person> members(void);
    Q_INVOKABLE int membersCount(void) const;
    Q_INVOKABLE Person *member(int index) const;
private:
    QList<Person*> m_MemberList;
};
#endif // PERSON_H


// person.cpp
#include "person.h"
//---------------------------------
//
Person::Person(QObject *parent) :
    QObject(parent), m_Name("unknow"), m_Age(0)
{
}
//---------------------------------
//
QString Person::getName(void) const
{
    return m_Name;
}
//---------------------------------
//
void Person::setName(const QString& name)
{
    m_Name = name;
    emit sendNameChange();
}
//---------------------------------
//
int Person::getAge(void)
{
    return m_Age;
}
//---------------------------------
//
void Person::setAge(int age)
{
    m_Age = age;
    emit sendAgeChange();
}
//---------------------------------
//
PersonGroup::PersonGroup(QObject *parent)
    :QObject(parent)
{
}
//---------------------------------
//
QDeclarativeListProperty<Person> PersonGroup::members(void)
{
    return QDeclarativeListProperty<Person>(this, m_MemberList);
}
//---------------------------------
//
int PersonGroup::membersCount() const
{
    return m_MemberList.size();
}
//---------------------------------
//
Person *PersonGroup::member(int index) const
{
    return m_MemberList.at(index);
}


// 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>();
    qmlRegisterType<PersonGroup>("People",1,0,"PersonGroup");
    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
    property int pgcurIndex: 0;
    PersonGroup{
        id: group;
        members: [
            Person { name: "A"; age: 20},
            Person { name: "B"; age: 21},
            Person { name: "C"; age: 22},
            Person { name: "D"; age: 23},
            Person { name: "E"; age: 24}
        ]
    }
    // 顯示這份工作的一些信息
    Rectangle{
        x: 100; y: 100;
        width: 100; height: 100;
        Text { id: text1;  text: ""}
        Text { id: text2;  y: 20; text: ""}
        Text { id: text3;  y: 40; text: ""}
    }
    MouseArea{
        anchors.fill: parent;
        onClicked:{
            //if (pgcurIndex < group.membersCount() - 1){ // 這里兩種方法都可以
            if (pgcurIndex < group.members.length - 1){
                pgcurIndex++;
            }else{
                pgcurIndex = 0;
            }
            // 顯示信息
            text1.text = "PersonGroup index: " + pgcurIndex;
            var person = group.member(pgcurIndex);
            text2.text = "Person name: " + person.name;
            text3.text = "Person age: "  + person.age;
        }
    }
}


說明

這里導出了兩個類Person, PersonGroup, PersonGroup保存來一個Person的組,

我們通過導出的函數來調用類面的成員,獲取成員的信息.

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区深夜视频| 亚洲欧美春色| 欧美福利电影在线观看| 亚洲国产精品悠悠久久琪琪| 91久久精品美女高潮| 欧美精品久久久久久久免费观看 | 亚洲精华国产欧美| 99热这里只有精品8| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 麻豆成人在线播放| 亚洲美女中文字幕| 国产精品亚洲综合久久| 欧美在线1区| 亚洲欧洲日本一区二区三区| 午夜精品福利视频| 亚洲高清资源综合久久精品| 欧美日韩天天操| 久久国产色av| 99精品国产热久久91蜜凸| 久久久www成人免费精品| 亚洲精品中文字幕有码专区| 国产精品国产成人国产三级| 久久久国产精品亚洲一区 | 欧美大片在线观看一区| 亚洲天堂av在线免费观看| 鲁大师成人一区二区三区 | 亚洲精品美女| 久久久青草婷婷精品综合日韩| 亚洲精品自在久久| 国产视频不卡| 欧美深夜福利| 欧美成人高清| 欧美一区二区三区在线观看| 亚洲国产欧美在线人成| 久久裸体视频| 欧美一区二区视频在线观看2020 | 美女精品一区| 欧美亚洲尤物久久| 一区二区日韩免费看| 欧美二区在线看| 久久久久久久久久码影片| 亚洲图片欧美一区| 亚洲激情综合| 狠久久av成人天堂| 国产精品天天摸av网| 欧美人与禽猛交乱配视频| 久久综合色影院| 午夜影视日本亚洲欧洲精品| 99人久久精品视频最新地址| 欧美激情视频给我| 蜜桃av久久久亚洲精品| 久久久久久久一区二区三区| 亚洲欧美日韩爽爽影院| 亚洲一区www| 亚洲乱码一区二区| 亚洲黄网站在线观看| 一区精品在线| 一区二区三区亚洲| 激情五月婷婷综合| 国产一区二区三区精品久久久| 国产精品久久久久久久久免费樱桃 | 欧美日韩美女| 欧美理论电影在线观看| 欧美电影免费观看| 欧美成人一区二免费视频软件| 久久人人爽国产| 久久久久久91香蕉国产| 久久精品天堂| 久久久久久一区二区| 久久全国免费视频| 久久五月激情| 久久蜜桃精品| 欧美xart系列在线观看| 欧美成年视频| 欧美日韩福利视频| 欧美色中文字幕| 国产精品每日更新| 国产日韩一区二区| 国产一区二区三区日韩| 伊人久久男人天堂| 亚洲精品欧洲精品| 国产精品99久久久久久人 | 欧美在线网站| 久久久久久久综合色一本| 老牛影视一区二区三区| 欧美精品v日韩精品v国产精品| 欧美老女人xx| 国产精品日本欧美一区二区三区| 国产日韩在线不卡| 狠狠色丁香婷婷综合久久片| 亚洲国产精品视频一区| 夜夜嗨av一区二区三区中文字幕| 亚洲一区二区在线看| 欧美在线视频一区| 欧美黑人多人双交| 一区二区三区欧美成人| 欧美伊人久久| 欧美激情2020午夜免费观看| 国产精品超碰97尤物18| 国产一区二区三区av电影| 亚洲狠狠婷婷| 亚洲综合99| 免费高清在线视频一区·| 亚洲精品日日夜夜| 午夜欧美精品| 欧美韩日一区二区| 国产精品一区久久| 亚洲激情欧美| 欧美一区观看| 亚洲日本中文字幕区| 香蕉久久a毛片| 欧美精品一区二区三区久久久竹菊| 国产精品视频999| 亚洲国产欧美一区二区三区久久| 亚洲综合精品| 欧美国产激情二区三区| 亚洲综合色自拍一区| 奶水喷射视频一区| 国产午夜精品久久| 亚洲视频久久| 欧美激情精品久久久久| 亚洲一区制服诱惑| 欧美精品久久99久久在免费线| 国产一区二区精品| 中国成人亚色综合网站| 欧美成人在线免费视频| 午夜精品美女久久久久av福利| 欧美激情1区2区3区| 激情综合久久| 久久国产精品99久久久久久老狼| 亚洲精品乱码久久久久久蜜桃麻豆| 久久国产精品久久精品国产 | 日韩一级精品| 久久综合激情| 欧美亚洲网站| 国产精品一区免费观看| 一区二区三区欧美视频| 欧美国产精品一区| 久久福利资源站| 国产麻豆精品theporn| 亚洲综合三区| 日韩网站在线观看| 欧美日本不卡| 99riav1国产精品视频| 欧美v日韩v国产v| 久久免费一区| 精品不卡一区二区三区| 久久久亚洲人| 欧美在线观看视频一区二区| 国产日韩欧美综合| 午夜精品视频在线观看一区二区| 日韩西西人体444www| 欧美日韩成人免费| 99热在这里有精品免费| 亚洲国产乱码最新视频| 欧美gay视频| 亚洲激情成人网| 亚洲国产裸拍裸体视频在线观看乱了| 久久综合网络一区二区| 亚洲国产mv| 亚洲第一久久影院| 欧美激情综合五月色丁香| 日韩午夜在线播放| 日韩视频第一页| 欧美三级网址| 欧美亚洲综合在线| 欧美一区二区视频在线观看2020| 国产字幕视频一区二区| 久久久久国产成人精品亚洲午夜| 欧美一站二站| 亚洲国产精品黑人久久久| 欧美激情精品久久久久久大尺度| 欧美第一黄色网| 9l国产精品久久久久麻豆| 一本久道久久综合婷婷鲸鱼| 欧美午夜电影一区| 午夜一级久久| 久久精品在线| 99www免费人成精品| 亚洲免费电影在线| 国产精品日本一区二区| 久久夜色精品| 欧美精品v日韩精品v国产精品 | 亚洲国产欧洲综合997久久| 欧美激情视频在线播放| 欧美日韩一区高清| 久久gogo国模裸体人体| 久久综合亚洲社区| 亚洲精品一区二区三区99| 夜夜精品视频一区二区| 国产日韩欧美在线播放| 欧美激情免费观看| 欧美视频成人| 玖玖国产精品视频| 欧美精品久久天天躁| 欧美在线视频一区二区三区| 老牛嫩草一区二区三区日本| 亚洲一区二区精品视频| 久久成人免费网| 亚洲图片在区色|