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函数提供给子窗体获取信息使用。

 

你可能感兴趣的:(qt)