我有很多地方都要用到同一个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