• 5975阅读
  • 2回复

QT 全局变量问题 [复制链接]

上一主题 下一主题
离线geniusroger
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-11
— 本帖被 XChinux 执行加亮操作(2010-02-11) —
大家好,我想利用全局变量实现两个窗口之间的数据传递:比如说利用ID和Password登陆以后登陆窗口关闭,但是我想保存ID的信息在新窗口中继续使用,于是我定义globalUnit类:
#ifndef GLOBAL_H
#define GLOBAL_H
#include <QtGui>
class globalUnit
{
public:
    static QString currentUser;
};
#endif // GLOBAL_H
在loginwindow.cpp中包含这个头文件,然后在该cpp下对currentUser赋值:globalUnit::currentUser=ui->IDEdit->text();
编译报错:
Undefined symbols:
"globalUnit::currentUser", referenced from:
__ZN10globalUnit11currentUserE$non_lazy_ptr in loginwindow.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
不知道是什么问题?谢谢
离线XChinux

只看该作者 1楼 发表于: 2010-02-11
你需要在globalUnit类对应的.cpp文件中对静态成员进行声明

QString globalUnit::currentUser;
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线geniusroger
只看该作者 2楼 发表于: 2010-02-11
引用第1楼XChinux于2010-02-11 16:06发表的  :
你需要在globalUnit类对应的.cpp文件中对静态成员进行声明
QString globalUnit::currentUser;


是的,或者在main函数开始之前声明,总之不能直接在类中定义并赋值。
谢谢
快速回复
限100 字节
 
上一个 下一个