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

关于定义qt的静态成员,该如何处理

2012-12-16 
关于定义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
[其他解释]
顺便一提,我想学习下qml,但是感觉不好找资料啊。哪儿能找到qml完整点儿的资料啊?
thx~
[其他解释]
重大更新:

经过测试发现:任何地方都访问不了这个QRegExp对象,只要访问就连接出错!
不知道为什么。
(注释了那个初始化函数的!)
[其他解释]
搞定!
[其他解释]
亲···你解决了倒是说下怎么解决的啊···晕···

热点排行