在两个不同窗口间,我们有时会需要从一个窗口获得数据并传递给另外一个窗口,为了完成这个操作,我们就需要自己设计窗口的信号。
比如我存在两个窗口,窗口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
}
网友评论