在兩個(gè)不同窗口間,我們有時(shí)會(huì)需要從一個(gè)窗口獲得數(shù)據(jù)并傳遞給另外一個(gè)窗口圆丹,為了完成這個(gè)操作滩愁,我們就需要自己設(shè)計(jì)窗口的信號(hào)。
比如我存在兩個(gè)窗口辫封,窗口1與窗口2硝枉,我需要從窗口2上的lineEdit接收數(shù)據(jù)并傳遞給窗口1。
//窗口2倦微,需要在類中加入對(duì)應(yīng)的信號(hào)
signals:
void sendMessage(const QString); //需要發(fā)送出去的信號(hào)
private slots:
void pushButtonSlot(); //并且設(shè)計(jì)對(duì)應(yīng)的槽函數(shù)
void window2::pushButtonSlot()
{
emit sendMessage(ui->lineEdit->text()); //將lineEdit上的文本直接發(fā)送出去
}
//窗口1妻味,需要加入槽函數(shù)來(lái)接收這個(gè)信號(hào)
private slots:
void getMessage(const QString); //需要和信號(hào)函數(shù)的參數(shù)一致
QObject::connect(this->window,&window2::sendMessage,this,&window1::getMessage); //將窗口2的信號(hào)與窗口1的槽函數(shù)進(jìn)行連接
void window1::getMessage(const QString temp)
{
//在這里我們已經(jīng)獲得了來(lái)自窗口2的QString
//do something
}