jcl_betterman
jcl_betterman
采纳率33.3%
2019-07-26 10:35 阅读 668

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

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

图片说明

这个是头文件

图片说明

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

这个是主函数
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    qtchen_1988 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的操作,
    虽然不是最好的办法,但是比较简单易懂的方法。

    点赞 1 评论 复制链接分享

相关推荐