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

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条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

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

      悬赏问题

      • ¥100 IIC通讯数据算法分析
      • ¥15 matlab 绘制涡流场
      • ¥15 依存句法分析如何与BERT模型及GCN相结合
      • ¥66 有偿收一个会Python 与unitysocket通信,会简单mediapipe手势识别的哥
      • ¥15 药店卖药设计使利润最大
      • ¥15 模拟银行实现VIP服务
      • ¥20 ECU在实车上can通讯失败或不稳定
      • ¥15 关于VB.net调用Excel如何打包的问题?
      • ¥15 VB6.0+WebBrowser如何实现网页内嵌图片按钮点击
      • ¥30 请问纯C语言如何编写简易的easyx图形库