您的位置:首页 > 编程语言 > Qt开发

在QT中使用静态对象

2015-11-11 16:10 323 查看
最近做教研室的项目,需要只能存在一个接收数据的线程,那么我就想把这个线程设置成一个静态对象。但是在connect信号与槽的时候出了一点问题,最后搞好了,现在这mark一下:

比如说一个声明了一个静态的thread以及一个成员Thread的话:

class A{
private:
Thread1 * soSthThread;
static Thread2  * recvThread;
};

class Thread2 : public QThread{
signals:
void recvFrame(unsigned int );
};

class Thread1 : public QThread{
public slots:
void getFrame(unsigned int);
};


那么初始化就应该使用这种方式:

Thread2 * A::recvThread(new Thread2());//注意这里不可以加上static,编译器已经知道这个Thread是static的了,无需再次声明


在A的构造函数中Thread1与Thread2之间的槽连接应该采用下面这种方式:

connect(A::recvThread, SIGNAL(recvFrame(unsigned int)), this, SLOT(getFrame(unsigned int)));


大体上就是这样。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: