在QT中如何实现不同窗口之间的数据共享
就是不同的窗口都可以提取数据,写入数据。我有试过写一个头文件,里面写上结构体,利用建立链表来存数据,但是编译错误,因为我在头文件里面声明了一个节点作为头文件,但是每个窗口...
就是不同的窗口都可以提取数据,写入数据。
我有试过写一个头文件,里面写上结构体,利用建立链表来存数据,但是编译错误,因为我在头文件里面声明了一个节点作为头文件,但是每个窗口载入这个头文件,都会重复声明,导致错误。
有没有其他的方法,有看到资料说,利用一个文档进行传输,如果可行,那么文档的读和写改怎么做,请举出代码说明~麻烦了~
如果用全局变量,反复声明,能保证在同一个地址段么? 展开
我有试过写一个头文件,里面写上结构体,利用建立链表来存数据,但是编译错误,因为我在头文件里面声明了一个节点作为头文件,但是每个窗口载入这个头文件,都会重复声明,导致错误。
有没有其他的方法,有看到资料说,利用一个文档进行传输,如果可行,那么文档的读和写改怎么做,请举出代码说明~麻烦了~
如果用全局变量,反复声明,能保证在同一个地址段么? 展开
2个回答
展开全部
两种办法
方法一:
在包括main函数的文件里声明extern QVector<DragLabel*> labelVector = QVector<DragLabel*>(0);
其他文件用的时候再声明一次extern QVector<DragLabel*> labelVector;
你可以去查一下extern的用法
方法二:
使用static
例如
//globalsize.h
#ifndef GLOBALSIZE_H
#define GLOBALSIZE_H
#include <QtGui>
class GlobalSize
{
public:
static QSize size;
static void setSize(QSize s);
static QSize getSize();
};
#endif // GLOBALSIZE_H
//globalsize.cpp
#include "globalsize.h"
QSize GlobalSize::size = QSize(0,0);
void GlobalSize::setSize(QSize s)
{
size = s;
}
QSize GlobalSize::getSize()
{
return size;
}
方法一:
在包括main函数的文件里声明extern QVector<DragLabel*> labelVector = QVector<DragLabel*>(0);
其他文件用的时候再声明一次extern QVector<DragLabel*> labelVector;
你可以去查一下extern的用法
方法二:
使用static
例如
//globalsize.h
#ifndef GLOBALSIZE_H
#define GLOBALSIZE_H
#include <QtGui>
class GlobalSize
{
public:
static QSize size;
static void setSize(QSize s);
static QSize getSize();
};
#endif // GLOBALSIZE_H
//globalsize.cpp
#include "globalsize.h"
QSize GlobalSize::size = QSize(0,0);
void GlobalSize::setSize(QSize s)
{
size = s;
}
QSize GlobalSize::getSize()
{
return size;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询