QT 窗体之间(MainWindow 和 Dialog)数据传递

【生活经历分享】华师国培 华师伴学 合同都是坑 消费者付款后无法退款
和华师国培签合同需小心,合同中都是保护华师的条款,没有保护消费者的条款。
收到钱,就算你因对培训质量不满意,也不能退款。因合同消费者维权肯定十分艰难。
华师伴学的授课方式是看录制的视频,不是真人现场教学。是否是您和孩子想要的学习方式?
各位打算报名的,交费要谨慎!

其他人在小红书上发的,转:
深圳市华师国培教育科技有限公司,黑心机构,大家擦亮眼睛,别被骗了,消费欺诈,虚假承诺,签合同各种坑,收到钱了不履行承诺不退款,乱扣费,维权艰难! - 小红书

 

在学习QT时,想实现一下QT下串口通话的功能。当时想将不常用的串口设置不放在主界面MainWindow中,而是放在一个弹出设置对话框(Dialog)中。

结果在实现时发现在设置对话框中修改了参数后,需要将修改后的参数传递到主窗体MainWindow中。

需要研究一下如何完成数据的传递? 实现的过程还是适用信号与糟的机制。

1) 在 MainWindow 中增加如下代码

1 SerSetting *pSerSettingDlg = new SerSetting;
2 connect(pSerSettingDlg,&SerSetting::getSerSetDlgParams,
3     this,&MainWindow::setSerSetDlgParams);

2) 在 MainWindow 中实现糟 setSerSetDlgParams
.h 中增加:

1 public slots:
2     void setSerSetDlgParams(int iDataBit,int iStopBoit,int iVerifyBit,
3        int iCtrlBit,bool bDts,bool bDtr);

.cpp 中增加:

 1 void MainWindow::setSerSetDlgParams(int iDataBit,int iStopBoit,int iVerifyBit,
 2     int iCtrlBit,bool bDts,bool bDtr)
 3 {
 4     qDebug() << "data bit: " << iDataBit;
 5     qDebug() << "stop bit: " << iStopBoit;
 6     qDebug() << "verify bit: " << iVerifyBit;
 7     qDebug() << "control bit: " << iCtrlBit;
 8     qDebug() << "DTS: " << bDts;
 9     qDebug() << "DTR: " << bDtr;
10 }

3) 在 Dialog 中实现信号
.h 中增加:

1 signals:
2     void getSerSetDlgParams(int iDataBit,int iStopBoit,int iVerifyBit,
3                             int iCtrlBit,bool bDts,bool bDtr);

.cpp 中增加:

1 void SerSetting::on_serSetOkBtn_clicked()
2 {
3     emit getSerSetDlgParams(iSelDataBit,iSelStopBit,iSelVerifyBit,
4         iSelCtrlBit,bSelDts,bSelDtr);
5     QDialog::accept();
6 }

刚开始对信号不熟悉,竟然试着去实现信号的函数。这样做,在编译时会报错。出错信息大概是 getSerSetDlgParams 重定义了!

posted @ 2016-03-16 18:07  91program  阅读(8174)  评论(0)    收藏  举报