QT 常见面试题

Qt技术要点:信号槽机制,网络通信与多线程

1、在Qt当中,多线程环境下,信号槽分别是在什么样的线程中执行?如何控制?

参考答案:

通过connect(...)第5个参数控制信号槽执行所在线程

connect(...)它的连接方式:队列连接、自动连接和直接连接

  • 队列连接 Qt::QueuedConnection
  • 自动连接 Qt::AutoConnection
  • 直接连接 Qt::DirectConnection

2、在Qt开发当中,UDP协议当中的UdpSocket通讯流程?

参考答案:

在Qt当中提供QUdpSocket类来进行UDP数据报发送和接收数据(IP地址和端口)。

流程:

A创建QUdpSocket套接字对象---》B如果需要接收数据,必须绑定端口--->C发送数据使用writeDatagram,接收数据使用readDataGram

3、在Qt开发当中,TCP协议通讯流程

参考答案:

  • 服务器端:创建QTcpServer对象---》监听list(IP地址和端口)--》等待客户端连接成功后发送newConnect信号---》直接在newConnection信号槽函数中,调用nextPendingConnection函数获取新的连接QTcpSocket对象----》连接QTcpSocket对象的readRead信号---》在readRead信号槽函数使用read接收数据---》调用write函数来发送数据
  • 客户端:创建QTcpSocket对象---》当对象与服务器连接成功时会发送connected信号---》调用函数connectToHost连接服务(IP地址和端口)---》connected信号的槽函数开始发送数据---》使用write发送数据,使用read函数接收数据。

4、Qt 信号槽机制及其优点与缺点

  • 信号:所谓信号槽(观察者模式),信号的本质就是事件。信号展现方式就是函数,当某一事件发生之后,则发出一个信号(Signal)
  • 槽:就是对应信号响应函数,槽就是一个函数,槽函数与普通函数区别:槽函数可以与一个信号关联,当信号被射时,关联的槽函数被自动执行处理。信号和槽关联使用的是QObject::connect()函数进行实现。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值