当前位置: 代码迷 >> QT开发 >> 关于定义qt的静态成员,该怎么处理
  详细解决方案

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

热度:103   发布时间:2016-04-25 04:13:51.0
关于定义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
  相关解决方案