zoukankan      html  css  js  c++  java
  • Qt带参数的信号和槽

    在Qt的开发过程中,信号带参数是很常见的,在使用带参数的信号槽时,有以下几点需要注意。

    • 当信号和槽函数的参数数量相同时,它们的参数类型要完全一致。

    信号和槽函数的声明:

    signals:
        void iSignal(int b);
        void strSignal(QString str);
    public slots:
        void iSlots(int b);
        void strSlots(QString str);
    

    信号和槽函数的绑定:

        connect(this,SIGNAL(iSignal(int)),
                this,SLOT(iSlots(int)));
    
        connect(this,SIGNAL(strSignal(QString)),
                this,SLOT(strSlots(QString)));
    

    发射信号:

        emit iSignal(5);
        emit strSignal("hello word");
    

    槽函数的实现:

    void MainWindow::iSlots(int b)
    {
        qDebug() << "b = " << b;
    }
    
    void MainWindow::strSlots(QString str)
    {
        qDebug() << str;
    }
    
    • 当信号的参数与槽函数的参数数量不同时,只能是信号的参数数量多于槽函数的参数数量,且前面相同数量的参数类型应一致,信号中多余的参数会被忽略。

    信号:

        void iSignal(int b,int a);
    

    响应信号的槽函数:

    void MainWindow::iSlots(int b)
    {
        qDebug() << "b = " << b;
    }
    
    • 在不进行参数传递时,信号槽绑定也是要求信号的参数数量大于等于槽函数的参数数量,这种情况一般是一个带参数的信号去绑定一个无参数的槽函数。

    信号:

        void iSignal(int b,int a);
    

    响应信号的槽函数:

    void iSlots();
    

    信号和槽函数的绑定:

        connect(this,SIGNAL(iSignal(int,int)),
                this,SLOT(iSlots()));
    
  • 相关阅读:
    mybatis-generator自动生成dao,mapping,model
    cent os 6.5+ambari+HDP集群安装
    cent os 6.5 配置vsftpd
    Ambari修改主页面方法
    Maven .m2 epositoryjdk ools1.7 missing
    Chrome封掉不在chrome商店中的插件解决办法
    Hadoop 读取文件API报错
    Hadoop创建/删除文件夹出错
    mysql性能测试(索引)
    Greys--JVM异常诊断工具
  • 原文地址:https://www.cnblogs.com/Manual-Linux/p/11676775.html
Copyright © 2011-2022 走看看