#include "mainwidget.h"
#include "ui_mainwidget.h"
#include <QMessageBox>
MainWidget::MainWidget(QWidget *parent) :
QWidget(parent),sendsharedMem("SHAREFILE"),recvsharedMem("SHAREFILE"),
ui(new Ui::MainWidget)
{
ui->setupUi(this);
mythread = new MyThread;
connect(mythread,SIGNAL(signal()),this,SLOT(recvDate()));
connect(ui->pushButton, SIGNAL(clicked()), SLOT(loadFromSharedMem()));
ui->textEdit_2->setEnabled(false);
}
void MainWidget::loadFromSharedMem()
{
if (sendsharedMem.isAttached())
{
sendsharedMem.detach();
}
bool ok;
QString text = ui->textEdit->toPlainText();
ok=true;
if(ok && text.length())
{
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream out(&buffer);
out << text;
int size = buffer.size();
if (!sendsharedMem.create(size)) {
return;
}
sendsharedMem.lock();
char *to = (char*)sendsharedMem.data();
const char *from = buffer.data().data();
memcpy(to, from, qMin(sendsharedMem.size(), size));
sendsharedMem.unlock();
}
else
{
QMessageBox::warning(this,tr("Error"),tr("You must provide some texts"));
}
}
void MainWidget::recvDate()
{
if (!recvsharedMem.attach())
{
ui->textEdit_2->setText("No Share Data");
return;
}
QBuffer buffer;
QDataStream in(&buffer);
QString text;
recvsharedMem.lock();
buffer.setData((char*)recvsharedMem.constData(), recvsharedMem.size());
buffer.open(QBuffer::ReadOnly);
in >> text;
recvsharedMem.unlock();
recvsharedMem.detach();
ui->textEdit_2->setText(text);
}
MainWidget::~MainWidget()
{
delete ui;
}
void MainWidget::on_pushButton_2_clicked()
{
mythread->start();
}
void MainWidget::on_pushButton_3_clicked()
{
exit(0);
}

跟着梦的脚步走
- 粉丝: 55
最新资源
- LTE功率控制技术分析.ppt
- 专卖店服务营销规范.doc
- 经营计划管理办法.doc
- 安徽师范大学夜大学-计算机本科《操作系统》试卷(A).doc
- 《数控车削技术训练》课件-视频.docx
- 【精选】教育教学课件网络在线培训机构宣传介绍PPTppt模板.pptx
- Revit2018建筑基本绘图工具课件(47页).pdf
- 不同材料的餐具.docx
- 安全文明生产标准化宣讲.ppt
- Excel表格模板:活动费用报销申请单.xlsx
- 工程项目风险防范和安全管理.ppt
- 大数据呼唤快递业突破性创新.docx
- 职员阶段考绩1.doc
- 磨煤机检修工艺.doc
- 质量管理体系过程关系表(ISO9001-2015).pdf
- 2011年计算机二级Java的应用章节练习题.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
- 3
- 4
- 5
前往页