zoukankan      html  css  js  c++  java
  • 在QT中使用静态对象

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

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

     1 class A{
     2 private:
     3     Thread1 * soSthThread;
     4     static Thread2  * recvThread;
     5 };
     6 
     7 class Thread2 : public QThread{
     8 signals:
     9     void recvFrame(unsigned int );
    10 };
    11 
    12 class Thread1 : public QThread{
    13 public slots:
    14     void getFrame(unsigned int);
    15 };

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

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

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

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

    大体上就是这样。。。

  • 相关阅读:
    AJAX学习笔记
    JQuery 学习笔记-2017.05.22
    十二.GUI
    十一.文件
    十.模块和库
    九.类的进化(魔法方法、特性和迭代器)
    八.异常
    七.类的继承
    六.函数和类
    五.条件、循环和其他语句
  • 原文地址:https://www.cnblogs.com/-wang-cheng/p/4956271.html
Copyright © 2011-2022 走看看