zoukankan      html  css  js  c++  java
  • 关于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();
    }
    
    

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

  • 相关阅读:
    luogu 1169 棋盘制作(单调栈/悬线)
    poj 2769 感觉♂良好 (单调栈)
    hdu 5033 buiding(单调栈)
    hdu1506 直方图中最大的矩形 单调栈入门
    有线电视网(树形dp)
    洛谷P1220 关路灯(区间dp)
    【题解】NOI2009二叉查找树 + NOIP2003加分二叉树
    【题解】AHOI2009中国象棋
    【算法】Matrix
    【题解】WC2008游览计划
  • 原文地址:https://www.cnblogs.com/neo3301/p/13169831.html
Copyright © 2011-2022 走看看