Back2zer0 2022-05-19 15:48 采纳率: 100%
浏览 77
已结题

QT中,connect 关键字 在窗口类头文件里使用时 发生报错

问题遇到的现象和发生背景
#include <QPushButton>
#include <QWidget>
#include "student.h"
#include "teacher.h"
class mywidget : public QWidget
{
    Q_OBJECT

public:
    student* st = new student(this);
    teacher* wt = new teacher(this);
    QPushButton *wtb1 = new QPushButton("无参",this);
    QPushButton *wtb2 = new QPushButton("有参",this);
    void(student::*Nopartreat)()=&student::treat;
    void(teacher::*Noparhungry)()=&teacher::hungry;
    void(student::*partreat)(QString,int)=&student::treat;
    void(teacher::*parhungry)(QString,int)=&teacher::hungry;
  //  connect(wt,Noparhungry,st,Nopartreat);
  //  connect(wt,parhungry,st,partreat);
  //  connect(wtb1,&QPushButton::clicked,wt,Noparhungry);
   // connect(wtb2,&QPushButton::clicked,this,&mywidget::classisover);

    void classisover();  //classisover() 是信号触发的函数
    mywidget(QWidget *parent = 0);
    ~mywidget();
};
 
报错提示

这四个connect是不合法的。
connect本身,connect的 前三个参数的报错提示:error: C++ requires a type specifier for all declarations
第四个参数的报错提示:error: unknown type name 'Noparhungry'

尝试思路

只能把connect 语句 放在头文件对应的 cpp源文件里。

#include "mywidget.h"
mywidget::mywidget(QWidget *parent)
    : QWidget(parent)
{
    connect(wt,Noparhungry,st,Nopartreat);
    connect(wt,parhungry,st,partreat);
    connect(wtb1,&QPushButton::clicked,wt,Noparhungry);
    connect(wtb2,&QPushButton::clicked,this,&mywidget::classisover);
    wtb2->move(100,100);
}


我想要达到的结果

我想当然的认为,头文件和源文件里写 connect语句,不都是在mywidget这个窗口类的作用域里吗?
为什么会出现这种现象?
(头文件中除了connect语句,许多初始化工作 像函数指针绑定、按钮类的new等在源文件/头文件皆可。)
难道跟头文件有关?

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-05-19 16:58
    关注

    百度搜“c++ 头文件中和源文件中 区别”

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

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月19日

悬赏问题

  • ¥20 用泊松逆高斯分布拟合已知数据
  • ¥15 web课程,怎么做啊😭没好好听课 根本不知道怎么下手
  • ¥15 做一个关于单片机的比较难的代码,然后搞一个PPT进行解释
  • ¥15 python提取.csv文件中的链接会经常出现爬取失败
  • ¥15 数据结构中的数组地址问题
  • ¥15 maya的mel里,怎样先选择模型A,然后利用mel脚本自动选择有相同名字的模型B呢。
  • ¥15 Python题,根本不会啊
  • ¥15 会会信号与系统和python的来
  • ¥15 关于#python#的问题
  • ¥20 oracle RAC 怎么配置啊,配置