QT实验报告
- 格式:doc
- 大小:776.00 KB
- 文档页数:61
面向对象程序设计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:
QPointer
};
class Master:public QWidget
{
Q_OBJECT
public: