窗口间通信

在两个不同窗口间,我们有时会需要从一个窗口获得数据并传递给另外一个窗口,为了完成这个操作,我们就需要自己设计窗口的信号。

比如我存在两个窗口,窗口1与窗口2,我需要从窗口2上的lineEdit接收数据并传递给窗口1。

//窗口2,需要在类中加入对应的信号
signals:
    void sendMessage(const QString);       //需要发送出去的信号

private slots:
    void pushButtonSlot();      //并且设计对应的槽函数

void window2::pushButtonSlot()
{
       emit sendMessage(ui->lineEdit->text()); //将lineEdit上的文本直接发送出去
}

//窗口1,需要加入槽函数来接收这个信号
private slots:
    void getMessage(const QString);   //需要和信号函数的参数一致

QObject::connect(this->window,&window2::sendMessage,this,&window1::getMessage);  //将窗口2的信号与窗口1的槽函数进行连接

void window1::getMessage(const QString temp)
{
      //在这里我们已经获得了来自窗口2的QString
      //do something  
}

你可能感兴趣的:(窗口间通信)