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
    点赞
  • 9
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

Cherry_keven

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值