Qt 信號槽如何傳遞參數(或帶參數的信號槽)


                                信號槽如何傳遞參數(或帶參數的信號槽)

  利用Qt進行程序開發時,有時需要信號槽來完成參數傳遞。帶參數的信號槽在使用時,有幾點需要注意的地方,下面結合實例進行介紹。

 

 第一點:當信號與槽函數的參數數量相同時,它們參數類型要完全一致。      

signals:
    void emitdata(int);

private slots:
    void getdata(int);   // 具體實現   qDebug() << "int :   "  << a <<  agr << endl;
然后進行鏈接    connect(this,SIGNAL(emitdata(int)),this,SLOT(getdata(int)));
發送信號: emit emitdata(5) ;

我們 將會收到 5 這個數字;;


第二點:當信號的參數與槽函數的參數數量不同時,。
1、 當我們的槽參數數量多於信號數量時 將會出現 QObject::connect: Incompatible sender/receiver arguments 這個錯誤;

2、 只能是信號的參數數量多於槽函數的參數數量,且前面相同數量的參數類型應一致,信號中多余的參數會被忽略 ;
我們只能接受第一個參數;
signals:
    void emitdata(int,int);

private slots:
    void getdata(int);   // 具體實現   qDebug() << "int :   "  << a <<  agr << endl;
然后進行鏈接    connect(this,SIGNAL(emitdata(int,int)),this,SLOT(getdata(int)));
發送信號: emit emitdata(5,10) ;

我們 只能會收到 5 這個數字;;






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM