关于QT5 自定义信号槽 以及信号槽的重载问题

记录一下,自定义信号槽过程中遇到的错误。
注意这部分即可
**void(signaldemo:: *vcp)() = &(signaldemo::value_changed);
void(signaldemo:: *vcp2)(QString) = &(signaldemo::value_changed);
void(slotdemo:: nslot2)(QString) = &(slotdemo::slotfunc);
void(slotdemo:: nslot1)() = &(slotdemo::slotfunc);

#ifndef SIGNALDEMO_H
#define SIGNALDEMO_H
#include <QDebug>
#include <QObject>

class signaldemo:public QObject
{
    Q_OBJECT
        
public:
    signaldemo();
    void senddd();
signals:
    void value_changed();
    void value_changed(QString );
};

#endif // SIGNALDEMO_H


```slot.cpp
#ifndef SLOTDEMO_H
#define SLOTDEMO_H

#include <QObject>

class slotdemo:public QObject
{
    Q_OBJECT
public:
    slotdemo();
public slots:
    void slotfunc();
    void slotfunc(QString);
};

#endif // SLOTDEMO_H

#include <QCoreApplication>
#include "signaldemo.h"
#include "slotdemo.h"
#include <QObject>
//#include <windows.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //qDebug()<<"starting";
    signaldemo sd ;
    //    slotdemo st;
    //    void(slotdemo::*st)= &slotdemo::slotfunc;
    //    auto  *sd = new signaldemo();
    auto *st = new slotdemo();
    void(signaldemo:: *vcp)() = &(signaldemo::value_changed);
    void(signaldemo:: *vcp2)(QString) = &(signaldemo::value_changed);
    void(slotdemo:: *nslot2)(QString) = &(slotdemo::slotfunc);
    void(slotdemo:: *nslot1)() = &(slotdemo::slotfunc);
//    QObject::connect(&sd,&signaldemo::value_changed,st,&slotdemo::slotfunc);  //注意是否为信号和槽函数
    QObject::connect(&sd,vcp2,st,nslot2);
    QObject::connect(&sd,vcp,st,nslot1);
    //    QObject::connect(&sd,&signaldemo::value_changed,&st,&slotdemo::slotfunc);
    //Sleep(1000);
    sd.senddd();
    return a.exec();
}

实现部分自己随便实现即可。

posted @   neo3301  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示