窗口间通信

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

比如我存在两个窗口,窗口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  
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 窗口间的通信用的地方还是挺多的,比如弹出qq登录认证窗。先上兼容性 基本用法其实也比较简单。window.open...
    虎虎虎呼呼阅读 3,401评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,081评论 6 13
  • 抄笔记有感,我一直认为表面工作是贬义词,但现在我认为其实不然,表面工作做不好,谁还会给你展现内在能力的机...
    张伟kk阅读 237评论 0 3
  • 女儿, 自妈妈发出第一封情书给你后,我们的心似乎走得更近了。你说我写得太肉麻,但还是会喜欢看。看来我这70后还真要...
    Syneysun阅读 195评论 0 0