QT5中兩個窗體之間傳遞信息(值)


一個窗體A調用另一個窗體B

1)包含窗體B的頭文件#include"B.h"

2)在窗體A中增加slots函數:

public slots:
    void infoRecv(QString);

  實現infoRecv函數體:

void A::infoRecv(QString sInfo)
{
    ui->label->setText(sInfo);//將獲取的信息顯示出來
}

3)在窗體B中增加signals函數:

signals:
  void infoSend(QString);

4)在窗體A調用B的地方增加窗體交流綁定代碼:

B idg = new B();
connect( idg ,SIGNAL(infoSend(QString) ,this ,SLOT(infoRecv(QString)));
idg.init(); //idg窗體的初始化工作
idg.show();

5)在窗體B中增加發送信息的代碼:

void B::on_buttonBox_clicked(QAbstractButton *button)
{
    QString sInfo;
    if(ui->buttonBox->button(QDialogButtonBox::Cancel)==button) //需要增加頭文件:#include<QPushBox>
        sInfo="cancel"; 
    else if(ui->buttonBox->button ( QDialogButtonBox::OK ) == button )
            sInfo="ok";
    emit infoSend(sInfo); //infoSend函數不需要有函數體
}

至此,實現了在A窗體中調用B窗體,並將B窗體的信息傳入到A窗體使用。

如果是父子窗體,在子窗體中調用父窗體的信息,可以在父窗體中增加一個public函數提供給子窗體獲取信息使用。

 


免責聲明!

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



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