Qt中 “class XXX“ has no member named “XXX“

"class XXX" has no member named "XXX"

问题描述

点击ui界面的按钮,调用自定义类(myTest)中的函数pB_mytest_Slot()

Qt报错:

类中没有此项成员变量
在这里插入图片描述

错误代码

    myTest* mytest = new myTest();
    connect(this->ui->pB_mytest, &QPushButton::clicked, [this]{this->mytest->pB_mytest_Slot(); });

思路

MainWindow类中没有成员,可能是在成员变量(public、private)中出现问题

solving

.h

public:
        myTest* mytest;

.cpp

mytest = new myTest();
connect(this->ui->pB_mytest, &QPushButton::clicked, [this]{this->mytest->pB_mytest_Slot(); });

this指代当前类。

如果以"myTest* mytest = new myTest();"这种方式构建一个指针,是没有问题的。

但是下方的connect上,"this->mytest"是不可以的,this指代当前类,this直接指向的必须是已经在成员变量定义好的,所以在public中定义。

拓展

如果在程序的源函数中,使用this指向成员变量,就需要在头文件中定义;

public:
    Data();

    vector<double> gyb_16_Ziz;
    array<vector<double>, 6> xcjz_16_Ziz;

如果头文件无法定义,this指向的函数要改变
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值