QT实验报告 - 图文(7)

2019-08-31 12:41

安庆师范学院计算机与信息学院

Anqing teacher school College of computer and information

paramLayout->addWidget(m_methodLabel,1,0,Qt::AlignRight|Qt::AlignVCenter);

paramLayout->addWidget(m_methodCombo,1,1,Qt::AlignRight|Qt::AlignVCenter);

paramLayout->addWidget(m_startButton,2,0,1,2,Qt::AlignRight|Qt::AlignVCenter);

m_paramGroup->setLayout(paramLayout);

mainLayout->addWidget(m_paramGroup); //

m_stateGroup=newQGroupBox(tr(\),this); QVBoxLayout*stateLayout=newQVBoxLayout(); m_progress=newQProgressBar(); m_progress->setRange(0,100); m_progress->setValue(0);

stateLayout->addWidget(m_progress);

m_stateText=newQTextEdit(this); m_stateText->setReadOnly(true);

stateLayout->addWidget(m_stateText,1); m_stateGroup->setLayout(stateLayout);

mainLayout->addWidget(m_stateGroup,2); }

voidWidget::disableControls() {

m_addHttpHeaderValueButton->setDisabled(true); m_startButton->setDisabled(true); m_headerKeyEdit->setDisabled(true); m_headerValueEdit->setDisabled(true); m_urlEdit->setDisabled(true);

m_methodCombo->setDisabled(true); }

voidWidget::enableControls() {

m_addHttpHeaderValueButton->setEnabled(true); m_startButton->setEnabled(true); m_headerKeyEdit->setEnabled(true); m_headerValueEdit->setEnabled(true); m_urlEdit->setEnabled(true);

m_methodCombo->setEnabled(true);

第28页共61页

面向对象程序设计:实验报告

安庆师范学院计算机与信息学院

Anqing teacher school College of computer and information

}

QStringWidget::requestString(QNetworkRequest*req) {

QStringjoinedHeader;

QVariantvariant=req->header(QNetworkRequest::ContentTypeHeader); if(variant.isValid()) {

joinedHeader+=\; joinedHeader+=variant.toString(); joinedHeader+=\; }

variant=req->header(QNetworkRequest::UserAgentHeader); if(variant.isValid()) {

joinedHeader+=\;

joinedHeader+=variant.toString(); joinedHeader+=\; }

QListheaderList=req->rawHeaderList(); intcount=headerList.size(); QByteArrayvalue;

for(inti=0;i

constQByteArray&tag=headerList.at(i); value=req->rawHeader(tag);

joinedHeader+=QString(\).arg(tag.data()).arg(value.data()); }

returnjoinedHeader; }

QStringWidget::responseString(QNetworkReply*reply) {

QStringjoinedHeader;

QVariantvariant=reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);

if(variant.isValid()) {

joinedHeader=QString(\).arg(variant.toInt()); }

第29页共61页

面向对象程序设计:实验报告

安庆师范学院计算机与信息学院

Anqing teacher school College of computer and information

QListheaderList=reply->rawHeaderList(); intcount=headerList.size(); QByteArrayvalue;

for(inti=0;i

constQByteArray&tag=headerList.at(i); value=reply->rawHeader(tag);

joinedHeader+=QString(\).arg(tag.data()).arg(value.data()); }

returnjoinedHeader; }

voidWidget::onAddHttpHeaderValue() {

if(!m_request) {

m_request=newQNetworkRequest(); }

QStringheader=m_headerKeyEdit->text();

if(header.compare(\,Qt::CaseInsensitive)==0) {

m_request->setHeader(QNetworkRequest::UserAgentHeader, m_headerValueEdit->text()); }

m_request->setRawHeader(header.toLatin1() ,m_headerValueEdit->text().toLatin1());

m_stateText->setText(requestString(m_request)); }

voidWidget::onStart() {

disableControls(); m_stateText->clear(); m_progress->setValue(0);

if(!m_request) {

m_request=newQNetworkRequest(); }

QStringstrURL=m_urlEdit->text();

第30页共61页

面向对象程序设计:实验报告

安庆师范学院计算机与信息学院

Anqing teacher school College of computer and information

QUrlqurl(strURL);

QStringhttpMethod=m_methodCombo->currentText();

m_request->setUrl(qurl);

if(httpMethod==\) {

QStringerrorString;

if(!openFile(true,errorString)) {

QMessageBox::warning(this,tr(\) ,errorString

,QMessageBox::Ok); resetState(); return; }

m_reply=m_nam.get(*m_request); }

elseif(httpMethod==\) {

QStringerrorString;

if(!openFile(false,errorString)) {

QMessageBox::warning(this,tr(\) ,errorString

,QMessageBox::Ok); resetState(); return; }

m_reply=m_nam.post(*m_request,m_file);

m_request->setHeader(QNetworkRequest::ContentTypeHeader, _get_content_type(m_strFilePath.toLatin1().data())); }

elseif(httpMethod==\) {

m_reply=m_nam.head(*m_request); }

elseif(httpMethod==\) {

m_reply=m_nam.deleteResource(*m_request); } else {

QMessageBox::information(this,tr(\)

第31页共61页

面向对象程序设计:实验报告

安庆师范学院计算机与信息学院

Anqing teacher school College of computer and information

,tr(\) ,QMessageBox::Ok); resetState(); return; }

connect(m_reply,SIGNAL(finished()),this,SLOT(onFinished())); connect(m_reply,SIGNAL(readyRead()),this,SLOT(onReadyRead())); connect(m_reply,SIGNAL(downloadProgress(qint64,qint64)), this,SLOT(onDownloadProgress(qint64,qint64)));

connect(m_reply,SIGNAL(uploadProgress(qint64,qint64)), this,SLOT(onUploadProgress(qint64,qint64)));

connect(m_reply,SIGNAL(metaDataChanged()),this,SLOT(onMetaDataChanged()));

connect(m_reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(onFinished()));

m_stateText->setText(requestString(m_request));

m_stateText->append(\); }

voidWidget::onMethodChanged(constQString&method) {

if(method==\) {

//openfileforsave

m_strFilePath=QFileDialog::getSaveFileName(this,tr(\)); }

elseif(method==\) {

//openfileforupload

m_strFilePath=QFileDialog::getOpenFileName(this,tr(\)); } }

voidWidget::onMetaDataChanged() {

m_stateText->setText(responseString(m_reply)); }

第32页共61页

面向对象程序设计:实验报告


QT实验报告 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:劳动法期中作业答案(2)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: