• 关于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();
    }
    
    

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

  • 相关阅读:
    api自动化工具集成metersphere
    gitlab+github使用记录
    docker基本操作
    linux指标分析
    python的break和continue
    linux基本性能指标语法
    jmeter标准流程设置
    postman
    jmeter本地启动
    对浮动的一些个人理解
  • 原文地址:https://www.cnblogs.com/neo3301/p/13169831.html
Copyright © 2020-2023  润新知