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

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

  • 相关阅读:
    Appium之开发计算器自动化测试脚本Demo
    Appium之开发环境搭建
    Javassist之常用API的应用 02
    阿里云提出的漏洞(Phpcms V9某处逻辑问题导致getshell漏洞解决方法)的问题
    z-index 层级关系
    html5移动端Meta设置
    js判断手机访问PC端跳转到手机站
    PHPCMS如何开启手机站点
    DedeCms文档关键词替换,优先替换长尾关键词
    [转载]利用@media screen实现网页布局的自适应,@media screen and
  • 原文地址:https://www.cnblogs.com/neo3301/p/13169831.html
Copyright © 2020-2023  润新知