QT实验报告 - 图文(9)

2019-08-31 12:41

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

Anqing teacher school College of computer and information

实验四:FTP:ftpTestTool

实验时间:实验地点: A603

一、实验目的

1.了解Qt使用QNetworkAccessManager进行ftp编程的基本方法 2.熟悉用QNetworkAccessManager进行ftp编程的注意事项 3.熟悉QNetworkAccessManager、QNetworkRequest、QNetworkReply和QUrl这四个类,以及它们的相互关系

二、实验内容

1.使用QNetworkAccessManager、QNetworkRequest、QNetworkReply和QUrl这四个类创建一个ftp访问器

三、实验要求

1.实现ftp 的登陆

四、实验步骤

1.使用QT应用程序向导创建GUI工程 2.使用QT Designer设计图形用户界面 ? 拖曳一个“按钮”控件

第38页共61页

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

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

Anqing teacher school College of computer and information

? 调整布局 ? 设置其属性

? 右键“按钮”控件,选择“转到槽”,在弹出的编辑界面中输入槽函数代码

3.使用编辑界面编写代码,通过代码再添加一个“按钮”控件,及其相应的槽函数 4.编译,运行

五、实验源码

main.cpp

#include\

#include

intmain(intargc,char*argv[]) {

QApplicationa(argc,argv); Widgetw; w.show();

returna.exec(); }

widget.h

#ifndefWIDGET_H #defineWIDGET_H

#include

#include #include #include #include

第39页共61页

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

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

Anqing teacher school College of computer and information

#include #include #include

#include

classWidget:publicQWidget {

Q_OBJECT

public:

Widget(QWidget*parent=0); ~Widget();

protectedslots: voidonGet();

voidonMetaDataChanged();

voidonDownloadProgress(qint64received,qint64total); voidonReadyRead();

voidonError(QNetworkReply::NetworkErrorcode); voidonFinished();

voidonAuthenticationRequired(QNetworkReply*reply, QAuthenticator*authenticator);

private:

voidresetState();

voiddisableControls(); voidenableControls();

QStringrequestString(QNetworkRequest*req); QStringresponseString(QNetworkReply*reply); boolopenFile(boolsave,QString&errorString);

private:

QLineEdit*m_userEdit;

QLineEdit*m_passwordEdit; QLineEdit*m_urlEdit;

QPushButton*m_getButton; QProgressBar*m_progress; QTextEdit*m_state;

QNetworkAccessManager*m_nam; QNetworkReply*m_reply; QStringm_strFilePath; QFile*m_file; QStringm_user;

QStringm_password;

第40页共61页

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

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

Anqing teacher school College of computer and information

};

#endif//WIDGET_H

widget.cpp

#include\ #include #include

#include #include

#include #include #include

Widget::Widget(QWidget*parent):QWidget(parent) ,m_nam(0),m_reply(0),m_file(0) {

QGridLayout*layout=newQGridLayout(this); QLabel*label=newQLabel(\);

label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);

layout->addWidget(label,0,0,Qt::AlignRight|Qt::AlignVCenter); m_userEdit=newQLineEdit();

layout->addWidget(m_userEdit,0,1);

label=newQLabel(\);

label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);

layout->addWidget(label,1,0,Qt::AlignRight|Qt::AlignVCenter); m_passwordEdit=newQLineEdit();

layout->addWidget(m_passwordEdit,1,1);

label=newQLabel(\);

label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);

layout->addWidget(label,2,0,Qt::AlignRight|Qt::AlignVCenter); m_urlEdit=newQLineEdit();

layout->addWidget(m_urlEdit,2,1);

m_getButton=newQPushButton(\);

connect(m_getButton,SIGNAL(clicked()),this,SLOT(onGet()));

layout->addWidget(m_getButton,3,1,Qt::AlignRight|Qt::AlignVCenter);

第41页共61页

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

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

Anqing teacher school College of computer and information

m_progress=newQProgressBar(); m_progress->setRange(0,100);

layout->addWidget(m_progress,4,0,1,2);

m_state=newQTextEdit();

m_state->setReadOnly(true);

layout->addWidget(m_state,5,0,1,2);

layout->setRowStretch(5,1); layout->setColumnStretch(1,1); }

Widget::~Widget() { }

voidWidget::onGet() {

disableControls(); m_state->clear();

m_progress->setValue(0);

m_user=m_userEdit->text();

m_password=m_passwordEdit->text();

QStringstrURL=m_urlEdit->text(); QUrlqurl(strURL);

qurl.setUserName(m_user);

qurl.setPassword(m_password); QNetworkRequestreq(qurl);

m_strFilePath=QFileDialog::getSaveFileName(this);

QStringerrorString;

if(!openFile(true,errorString)) {

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

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

第42页共61页

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


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

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

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

马上注册会员

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