QT中的Singal\slot机制

QT中的Singal\slot机制

在QT工程项目中,会使用到多窗口或者二级窗口,而窗口之间做数据交流时,可以使用信号\槽机制,将两个不相关的对象相连,达到数据传输的效果。

语法

Connect函数

以子窗口向父窗口传递数据为例

  1. 子界面
    在子界面中,需要在类中添加信号(singal)函数,在信号函数中,获取数据。
son_win.h
signals:
void sendData(QString);  //传递数据的信号

son_win.cpp
emit sendData(ui->textEdit->toPlainText()); 
//以获取textEdit数据为例,触发函数可以使用按键事件
  1. 父界面
    在父界面中,添加函数以接收信息
father_win.h
void receiveData(QString data);  // 槽函数

father_win.cpp
void Widget::receiveData(QString data)
{
   ui->textBrowser->insertPlainText(data);  //接收输入并且显示
   ui->textBrowser->moveCursor(QTextCursor::End);
}

3.连接器
有了信号,但是两个事件是并不相关的,都是独立于工程的,所以需要一个连接器,也就是connect函数将两者关联起来,使得在信号发射时,能够立即响应。

father_win.cpp
//在构造函数中创建对象和调用connect函数
son_win *dlg = new son_win;
   connect(dlg,SIGNAL(sendData(QString)),this,SLOT(receiveData(QString)));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值