Qt的属性Properties例子代码

来源:互联网 发布:在线看电视软件 编辑:程序博客网 时间:2024/05/29 06:37
#ifndef MYCLASS_H
//myclass.h
#define MYCLASS_H

#include <qobject.h>
class MyClass : public QObject
{
    Q_OBJECT
    Q_PROPERTY( Priority priority READ priority WRITE setPriority )
    Q_ENUMS( Priority )
       
public:
    MyClass( QObject *parent = 0, const char *name = 0 );
    ~MyClass();
   
    enum Priority { High, Low, VeryHigh, VeryLow };
    void setPriority( Priority );
    Priority priority() const;
       
private:
    Priority m_priority;
};

#endif 


//myclass.cpp
#include "myclass.h"

MyClass::MyClass( QObject *parent, const char *name )
    :QObject( parent, name)
{
    m_priority = High;
}

MyClass::~MyClass()
{
}

void MyClass::setPriority( Priority p )
{
    m_priority = p;
}

MyClass::Priority MyClass::priority() const
{
    return m_priority;
}


//使用
MyClass *obj = new MyClass( &w );
obj->setProperty( "priority", "Low" );
搞不懂为什么Low要打引号???
原创粉丝点击