#include "mainwidget.h"
#include "ui_mainwidget.h"
MainWidget::MainWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MainWidget)
{
ui->setupUi(this);
this->setWindowTitle("This is Client");
init();
ui->textEdit->setReadOnly(true);
}
MainWidget::~MainWidget()
{
delete ui;
}
void MainWidget::init()
{
m_pRemoteNode = new QRemoteObjectNode(this);
m_pRemoteNode->connectToNode(QUrl("local:interfaces"));
// m_pInterface = m_pRemoteNode->acquire<CommonInterfaceReplica>();
m_pInterface = m_pRemoteNode->acquireDynamic("Interfaces1");//动态获取
//只有Replica初始化好了才能真正使用它,要不然connect无效
connect(m_pInterface, &QRemoteObjectDynamicReplica::initialized, this, &MainWidget::onInitConnect);
}
/**
* @brief MainWidget::onReceiveMsg
* @param msg
* 接收服务器下发的消息
*/
void MainWidget::onReceiveMsg(QString msg)
{
ui->textEdit->append(QString("Server:") + msg);
}
void MainWidget::on_pushButton_clicked()
{
QString msg = ui->lineEdit->text();
if(!msg.isEmpty()){
// m_pInterface->onMessage(msg); //调用槽发送消息给服务器
emit sigSendMsg(msg);
}
ui->textEdit->append(QString("Client:") + msg);
ui->lineEdit->clear();
}
void MainWidget::on_lineEdit_returnPressed()
{
on_pushButton_clicked();
}
void MainWidget::onInitConnect()
{
qDebug() << "--->>>Lynn<<<---" << __FUNCTION__;
connect(m_pInterface,SIGNAL(sigMessage(QString)),
this,SLOT(onReceiveMsg(QString)));
connect(this,SIGNAL(sigSendMsg(QString)),
m_pInterface,SLOT(onMessage(QString)));
}
Qt Remote Object(QtRO)动态Replica实现进程间通信Demo
需积分: 48 12 浏览量
2019-06-15
21:53:11
上传
评论
收藏 15KB ZIP 举报
luoyayun361
- 粉丝: 2w+
- 资源: 55
最新资源
- 台达DOP系列触摸屏与DVP系列PLC通信电缆连接手册-20160122.pdf
- 计算机二级考试心得体会
- 织梦同步WAP插件(V1.4)
- linux之centos7打包与压缩命令详解
- (资源包名是松下不必介意实际是台达)台达PLC例程源码板式家具封边机
- (资源包名是松下不必介意实际是台达)台达PLC例程源码PLS交替输出(单按钮启停)
- (资源包名是松下不必介意实际是台达)台达PLC例程源码PLF指令(车库红绿灯控制)
- 织梦DedeCMS文章归档插件UTF-8和GBK版本
- (资源包名是松下不必介意实际是台达)台达PLC例程源码PLC与6台VFD-B的通讯
- doublescreen,MAXhub会议系统软件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈