- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt大型实验报告
一、?实验目的?
1. 了解并掌握Qt集成开发环境下使用Qt?Designer开发图形界面程序的流程和相关操作;
2?. 掌握在Qt?Designer界面上为菜单项添加工具栏按钮、创建相应槽函数的方法;?
3. 了解并掌握Qt的信号槽和信号传递机制,并通过具体应用加深理解;?
4. 了解并掌握TCP通信机制并掌握QTcpSocket及QTcpServer类的具体使用方法;
二、?实验原理?
信号和槽机制
信号:当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用。
槽:用于接收信号,而且槽只是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且对象并不了解具体的通信机制。
信号与槽的连接:所有从 QObject 或其子类 ( 例如 Qwidget ) 派生的类都能够包含信号和槽。因为信号与槽的连接是通过 QObject 的 connect() 成员函数来实现的。
客户端:
类
信号
槽函数
Client
void fileSize(qint64 size)
Void on_connected()
Void message(const QString str)
Void displaySocketError(QAbstractSocket::SocketError e)
void onError(qint32)
Void connected()
SocketError error()
Void on_connected()
void disconnected()
MainWindow
void on_Sendmsg_clicked()
Void deleteLater()
void on_Filerev_clicked()
Void on_socketDisconnected()
void on_Sendfile_clicked()
void setProccessBar(qint64 r)
void updateProccessBar(qint64 v)
Void on_socketError(qint32)
void on_socketDisconnected()
void on_socketError(qint32)
信号与槽关联关系:
connect(Client,SIGNAL(connected()),Client,SLOT(on_connected()));
connect(Client, SIGNAL(error(QAbstractSocket::SocketError)),
SLOT(displaySocketError(QAbstractSocket::SocketError)));
connect(client,SIGNAL(disconnected()),client, SLOT(deleteLater()));
connect(client,SIGNAL(disconnected()),MainWindow,SLOT(on_socketDisconne cted()));
connect(client,SIGNAL(fileSize(qint64)),MainWindow,SLOT(setProccessBar(qi nt64)));
connect(client,SIGNAL(bytesWritten(qint64)),MainWindow,SLOT(updateProcce ssBar(qint64)));
connect(client,SIGNAL(onError(qint32)),MainWindow,SLOT(on_socketError(qi nt32)));
服务器端:
类
信号
槽函数
Server
void rcvmessage(QString)
void rcvmsg(QString text)
void file()
void filerecv()
void displayError(int)
void finished()
clientThread
void error(int)
void on_socket_readyRead()
void message(QString)
void on_socket_disconnected()
void filerecv()
void displaySocketError(QAbstractSocket::SocketError e)
MainWindow
void updateEditText(QString text)
void upd
文档评论(0)