2.26号qt

4.4 纯净窗口移动

头文件包含

#include<QMouseEvent>

#include<QPoint> //向量类

类内声明

void mousePressEvent(QMouseEvent *event) override; //鼠标按下

void mouseMoveEvent(QMouseEvent *event) override; //鼠标移动

QPoint p; //存放坐标

void Widget::mousePressEvent(QMouseEvent *event)

{

p = event->pos(); //求出当前窗口的坐标点

}

//鼠标移动

void Widget::mouseMoveEvent(QMouseEvent *event)

{

if(event->buttons() == Qt::LeftButton)

{

this->move(event->globalPos() - p);

// 全局的坐标(向量) 当前窗口的坐标(向量)

}

}

1.绘制事件

1> 绘制事件是qt提供的二维图形引擎,能够让用户绘制各种图形,例如:适量文字、绘制图形、图像。。。

2> 绘制事件处理函数触发情况:窗口第一次展示、窗口最小化、最大化、窗口从覆盖状态显示出来、手动拖动窗口调大小、调用update函数

3> 绘制事件,依赖于画家类(QPainter)实现相关绘制工作

virtual protected void QWidget::paintEvent(QPaintEvent *event);//绘制事件函数

1. QT实现连接TCP协议

网络聊天室服务器实现

1.使用QTcpServer实例化一个服务器对象

2.设置监听,qt中监听与绑定合成为一个函数 listen()

3.如果有客户端发来请求,服务端就会发射一个newConnection信号,我们可以将该信号连接到一个自定义的槽函数中去,在槽函数获得客户端的套接字,并将套接字存放到容器中去

4.调用nextPaddingConnection函数,可以获取最新连接的客户端套接字。

5.当客户端向服务器发送数据时,会发送readyRead信号,我们可以将该信号连接到自定义的槽函数中读取数据

6.使用read()、readLine()、readAll()读取套接字中数据,使用write()往套接字中写入数据

7.调用close()关闭服务器

网络聊天室客户端实现

1.使用QTcpsocket实例化一个客户端对象

2.使用connectToHost()函数,给定ip和端口号连接服务器

3.如果客户端连接服务器成功,客户端会自动发送一个connected信号,我们可以将信号与自定义槽函数连接,在槽函数中处理逻辑代码

4.此时客户端已经与服务器建立连接,如果服务器发来数据,那么客户端会自动发送readyRead信号,我们就可以将该信号连接到自定义的槽函数中,读取服务器发来的数据。

5.调用read()、readLine()、readAll()读取数据,调用write()写入数据。

6.可以使用disconnectFromHost函数断开与服务器的连接,如果与服务器成功断开连接,那么客户端就会自动发射一个disconnected信号,我们就可以将该信号连接到自定义的槽函数中,处理相关逻辑代码。

相关推荐
噜~噜~噜~2 小时前
钢琴入门-基础乐理:第1讲到第3讲笔记
笔记·钢琴入门
坤坤子吖2 小时前
Linux 线程概念与控制——线程创建、退出与等待
linux·开发语言·c++·笔记·学习
qq_284274052 小时前
间歇运动机构与机械设计概论:棘轮与槽轮机构运动系数、零件失效与强度刚度准则、结构工艺性清根及标准件(含考点)
笔记·学习·平面·自动化·制造
于眠牧北3 小时前
雷电模拟器9/14搭配charles抓取自带浏览器接口9/14
经验分享·笔记·git
Answer1st10 小时前
【嵌入式模块】UART通信模块
笔记
和侧11 小时前
离子注入后为什么必须配套退火工艺?
笔记·学习
TheBlackHoleLab15 小时前
【Vulnhub系列】DarkHole1: 渗透测试笔记,没有踩渗透的坑,却踩到了虚拟机平台的坑,人生处处是大坑
笔记·vulnhub·easy·darkhole1
ACP广源盛1392462567315 小时前
硬件选型笔记:GSV2231@ACP,DP1.4 MST 一进三出多屏扩展方案评估
笔记·硬件架构·视频·mst·国产芯片
Awh-16 小时前
ARM 裸机开发 DAY11 学习笔记
arm开发·笔记·学习
志尊宝16 小时前
Vue3 零基础每日笔记(087):Vue3 高频面试题(下)
前端·javascript·vue.js·笔记·ecmascript·#vue.js