问个纠集一天的问题
在QT下做GPS定位遇到下面问题GPSdriver类 定义了一个结构体 gpsdata 里面是些经纬度数据
通过timerEvent事件每秒更新GPS数据 保存在gpsdata中
在最顶层有个mianwindow类(GPSdriver gps) 通过获取gpsdata中的数据 刷新label 在界面上显示经纬度
然后还有个类为localpoint(GPSdriver gps) 通过获取gpsdata中的数据 绘制当前位置的一个点
现在问题来了 mainwindow中能获取数据 显示出来 而localpoint类读取不到数据
在GPSdriver中 输出的数据gpsdata 确实是有更新的数据
但是在localpoint类中 用qDebug()输出 程序就卡住
用printf 经纬度%f 结果输出都为零
问题就在与 为啥 类localpoint中访问GPSdriver中的gpsdata 获取不到数据
而类mianwindow中访问GPSdriver中的gpsdata 就能读取到数据
高手 请留下只言片语 给小弟一点提示 到底哪出问题了 --------------------编程问答-------------------- 你不贴一下你的localpoint类,谁也不能蒙出问题所在……
如果你不让localpoint直接去读,而是从mianwindow的label上获得呢?避开二次读取信息 --------------------编程问答-------------------- 很感谢楼上的
这方法我也试过了 效果还是一样的 还是读不到数据
附上 改过的程序
typedef struct{
float fTime;
float fY;
char cY;
float fX;
char cX;
}GPGGA;
class gpsdriver:public QObject
{
Q_OBJECT
public:
GPGGA mGPGGA;
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
gpsdriver gps;
}
class localpoint:public QObject,public QGraphicsItem
{
Q_OBJECT
public:
gpsdriver gps;
}
就这个意思 帮忙看看 --------------------编程问答-------------------- 利用
localpoint lp;设置断点在此看看有没有数据更新,我觉得应该是更新的时候你没有更新到localpoint中,你保存的时候需要两个都保存进去 也就是要在loaclpoint保存一次,同时在MainWindow中也要保存一次,你这个地方不是菱形结构,不用共用同一块地址空间的 也就是每次更新两个变量需要同时更新 --------------------编程问答--------------------
我明白你的这个意思,但是单从这段程序看不出来原因 --------------------编程问答--------------------
不是很懂你的意思 --------------------编程问答-------------------- 多线程吗? --------------------编程问答-------------------- mianwindow类中的GPSdriver和localpoint中的GPSdriver是两个不同的对象,当然要为这两个不同的对象分别发送一份数据了。或者你把2个driver都设成指针,共享同一个数据对象。 --------------------编程问答--------------------
同意~~省的2次更新 --------------------编程问答-------------------- 数据类最好用单实例好点吧
补充:移动开发 , Qt