You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QT 3.3.8b下QAction信号无法连接自定义类SLOT问题咨询

问题根因

自定义类TLangTextDocs未添加Q_OBJECT宏,Qt 3的信号槽机制依赖元对象编译器(moc)生成的元代码完成信号和槽的匹配校验,没有Q_OBJECT宏的类不会生成槽函数对应的元信息,因此connect操作匹配不到目标槽函数,直接返回false。

解决步骤

  • 在TLangTextDocs类定义的起始位置添加Q_OBJECT宏,修改后的头文件类定义部分如下:
class TLangTextDocs  :  public QObject
{
Q_OBJECT // 新增这一行
public :
    bool saveAsNew();
public slots:
    void onSaveAsNew();
};
  • 清理项目所有编译缓存,包括删除moc生成的中间文件、旧Makefile
  • 重新执行qmake生成新的Makefile后,完整编译项目即可。

注意:如果添加宏后未重新执行qmake,moc不会扫描到该类的元信息修改,仍然会出现连接失败的问题。

内容的提问来源于stack exchange,提问作者korksz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:06:03