jcl_betterman 2019-07-26 10:35 采纳率: 0%
浏览 1188
已采纳

qt 中出现error: 'mywindow' does not name a type mywindow *cc; 怎么解决。

qt的环境为 5.11
我没有重复包含头文件,我就是想在线程类中获取主类中的成员。
看代码吧,请求大神的帮助。
这是有错误的那个源文件

图片说明

这个是头文件

图片说明

这个是线程函数的源文件,我的线程函数需要用到主源文件中的数据,就是线程类中需要引用主类中的数据。图片说明

这个是主函数
图片说明

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2019-07-26 10:50
    关注

    在hdthread.h 文件头添加

    class mywindow;
    

    然后hdthread.cpp文件添加;

    #include "mywindow.h"
    

    还有

    #ifndef HDTHREAD_H
    #define HDTHREAD_H
    
    #endif //HDTHREAD_H
    这三行最好别注释掉
    
    在 hdthread.h
    HDThread(); 改成 HDThread(QWidget *wgt);
    
    在hdthread.cpp
    HDThread::HDThread()
    {
        cc = new mywindow();
    }
    改成
    HDThread::HDThread(QWidget *wgt)
    {
        cc = dynamic_cast<mywindow *> (wgt);
    }
    
    在mywindow.cpp
    thread = new HDThread();
    改成
    thread = new HDThread(this);
    

    就可以了,这样,你在mywindow操作arr,也是对cc->arr的操作,
    虽然不是最好的办法,但是比较简单易懂的方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?