首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于定义qt的静态成员,该怎么处理

2013-01-08 
关于定义qt的静态成员我有很多地方都要用到同一个QRegExp于是我想新建一个类 里面大概这样写:#include QR

关于定义qt的静态成员
我有很多地方都要用到同一个QRegExp
于是我想新建一个类 里面大概这样写:


#include <QRegExp>
class CommonData
{
public:
    CommonData();
    ~CommonData();
    static QRegExp regExpIntegerOnly;
    static void staticDataInit();
};


staticDataInit()函数用于程序一开始的时候被CommonData::staticDataInit()调用,来初始化QRegExp的值:


void CommonData::dataInit()
{
    regExpIntegerOnly.setPattern("[0-9]*");
}


但是我在其他地方用到了这个变量:


ui.lineEdit->setValidator(new QRegExpValidator(CommonData::regExpIntegerOnly,this));


连接的时候就报错了:
Error    2    error LNK2001: unresolved external symbol "public: static class QRegExp CommonData::regExpIntegerOnly" (?regExpIntegerOnly@CommonData@@2VQRegExp@@A)    associator.obj    management
Error    2    error LNK2001: unresolved external symbol "public: static class QRegExp CommonData::regExpIntegerOnly" (?regExpIntegerOnly@CommonData@@2VQRegExp@@A)    commonData.obj    management

就是说 调用regExpIntegerOnly.setPattern("[0-9]*");和使用CommonData::regExpIntegerOnly都报错了!!
请问怎么办啊?
或者说 谁知道怎么实现这个方法啊。就是把这个QRegExp设置为静态的。其他地方可以调用!
谢谢!!!
[解决办法]
qml教程

http://home.meegoq.com/forum.php?mod=viewthread&tid=1022

热点排行