一個窗體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函數提供給子窗體獲取信息使用。
