关于定义qt的静态成员,该如何处理
关于定义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对象,只要访问就连接出错!
不知道为什么。
(注释了那个初始化函数的!)
[其他解释]搞定!
[其他解释]亲···你解决了倒是说下怎么解决的啊···晕···