QT实验报告

  • 格式:doc
  • 大小:776.00 KB
  • 文档页数:61

下载文档原格式

  / 61
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计2

实验报告

专业:计算机科学与技术

年级:2013级

班级:工科 1班

学号:070613047

姓名:黄剑波

目录

实验一:线程通信:门铃 (1)

一、实验目的 (1)

二、实验内容 (1)

三、实验要求 (1)

四、实验步骤 (1)

五、实验源码 (2)

main.cpp (2)

doorbell.h (2)

doorbell.cpp (4)

doorbell.qrc (7)

六、实验结果与分析 (7)

七、教师评价 (7)

实验二:高阶多线程QtConcurrent的使用:ImageLoader (7)

一、实验目的 (8)

二、实验内容 (8)

三、实验要求 (8)

四、实验步骤 (8)

五、实验源码 (9)

main.cpp (9)

widget.h (9)

widget.cpp (10)

imageloader.qrc (11)

六、实验结果与分析 (12)

七、教师评价 (13)

实验三:HTTP编程:httpTestTool (14)

一、实验目的 (14)

二、实验内容 (14)

三、实验要求 (14)

四、实验步骤 (14)

五、实验源码 (15)

main.cpp (15)

widget.h (15)

widget.cpp (17)

六、实验结果与分析 (35)

七、教师评价 (37)

实验四:FTP:ftpTestTool (38)

一、实验目的 (38)

二、实验内容 (38)

三、实验要求 (38)

四、实验步骤 (38)

五、实验源码 (39)

main.cpp (39)

widget.h (39)

widget.cpp (41)

六、实验结果与分析 (48)

七、教师评价 (48)

实验五:TCP服务器:timeService (48)

一、实验目的 (49)

二、实验内容 (49)

三、实验要求 (49)

四、实验步骤 (49)

五、实验源码 (50)

main.cpp (50)

timeService.h (50)

timeService.cpp (51)

七、教师评价 (52)

实验六:TCP:timeClient (52)

一、实验目的 (53)

二、实验内容 (53)

三、实验要求 (53)

四、实验步骤 (53)

五、实验源码 (54)

main.cpp (54)

widget.h (54)

widget.cpp (55)

timeClient.h (56)

timeClient.cpp (56)

六、实验结果与分析 (58)

七、教师评价 (58)

实验一:线程通信:门铃

实验时间:实验地点: A603

一、实验目的

1.熟悉QT的多线程编程

2.学会使用QThread类创建线程

3.掌握使用QT事件进行跨线程通信的方法

二、实验内容

1.使用QThread类和Qt事件跨线程通信配合完成一个门铃实验。

2.门铃示例创建一个工作线程,随机发送门铃事件给GUI线程中

的主人,事件中携带客人和礼物的信息,主人如果觉得客人和礼物都

满意,就两眼放光,否则就假装不在。

三、实验要求

1.熟悉QT的多线程编程,了解Qt事件跨线程通信的方法

四、实验步骤

1.使用QT应用程序向导创建GUI工程

2.使用QT Designer设计图形用户界面

拖曳控件

调整布局

设置属性

信号与槽映射

3.使用QT Create编写代码

4.编译

5.构建

6.调试

五、实验源码

main.cpp

#include"doorbell.h"

#include

int main(int argc,char*argv[])

{

QApplication a(argc,argv);

Master w;

w.show();

return a.exec();

}

doorbell.h

#ifndef DOORBELL_H

#define DOORBELL_H

#include

#include

#include

#include

#include

#include

#include

class BellEvent:public QEvent

{

public:

BellEvent(const QString&visitor,const QStringList&gifts);

QString m_visitor;

QStringList m_gifts;

static Type eventType();

protected:

static Type m_evType;

};

class BellThread;

class QTimer;

class Ringer:public QObject

{

Q_OBJECT

public:

Ringer(BellThread*t);

public slots:

void onTimeout();

private:

BellThread*m_thread;

};

class BellThread:public QThread

{

friend class Ringer;

public:

BellThread(QObject*receiver);

protected:

void run();

private:

QPointerm_receiver;

};

class Master:public QWidget

{

Q_OBJECT

public: