QT 网络聊天室简易版
视频:qt开发网络聊天w室软件3.4界面开发_哔哩哔哩_bilibili
目录
UI部分
设计稿图
放置控件
界面美化
拖动窗体
设置界面
网络部分
配置对话框
多项目结果和服务器端设计
客户端框架开发
UI部分
设计稿图

放置控件

界面美化

现在我们把窗体自带的标题栏给去了,用我们自己画的.我们在调用窗口这里调用setWindowFlags()函数,它利用有个隐藏标题栏方法Qt::FramelessWindowHint


拖动窗体
我们需要重写几个虚函数:
virtual void mousePressEvent(QMouseEvent *event); //响应鼠标点击virtual void mouseReleaseEvent(QMouseEvent *event); //响应鼠标离开virtual void mouseMoveEvent(QMouseEvent *event); //响应鼠标按住窗体移动


这样就可以拖动窗体了:

设置界面
新建一个Dlg文件,名字为Dlg_setting,如下:

把我们的设置按钮重名为btn_set,然后转到槽:
然后调用我们的dlg_setting界面:
void cell_Main::on_btn_set_clicked()
{Dlg_setting dlg;dlg.exec();
}
此时就可以通过点击设置按钮打开设置界面了吗 
新增一个清屏按钮:

网络部分
首先需要在Pro文件中加载socket模块:
QT +=network
配置对话框
在QDialog类下的QWidge类里有个虚函数showEvent(),我们需要重写这个虚函数
在dlg_setting.cpp文件里重写showEvent虚函数,这样我们就可以在点击设置的时候打印出我们的地址
void Dlg_setting::showEvent(QShowEvent *event)
{auto l=QNetworkInterface::allAddresses();for(auto it:l){qDebug()<<it.toString();}
}

现在我们在我们的电脑上模拟两个客户端,一个服务端.我们自己来配一下地址:
在控制面板的网络连接里,选择我们的以太网,在属性的里选择ipv4,在高级选项里新增两个客户端ip地址,一个服务器端ip地址:


此时再调用showEvent(函数),发现我们的自己配置的地址和端口号就显示出来了:
然后我们把我们配置的地址给 加载进我们ui界面ip地址的下拉列表框里:
void Dlg_setting::showEvent(QShowEvent *event)
{// 清空下拉框中的IP地址列表ui->cb_ips->clear();// 获取所有网络接口的地址列表auto l = QNetworkInterface::allAddresses();// 遍历所有网络接口的地址for (auto it : l){// 打印出所有地址,调试用,可以注释掉// qDebug()<<it.toString();// 检查地址是否为IPv4类型if (QAbstractSocket::IPv4Protocol == it.protocol()){// 如果是IPv4地址,则添加到下拉框中ui->cb_ips->addItem(it.toString()); }}
}
多项目结果和服务器端设计
我们创建一个根文件夹qtalk,里面放客户端和服务器端.客户端就是我们上面写的,服务器端不用Ui界面,创建一个控制台文件即可

qtalk.pro文件内容如下:

客户端框架开发
相关文章:
QT 网络聊天室简易版
视频:qt开发网络聊天w室软件3.4界面开发_哔哩哔哩_bilibili 目录 UI部分 设计稿图 放置控件 界面美化 拖动窗体 设置界面 网络部分 配置对话框 多项目结果和服务器端设计 客户端框架开发 UI部分 设计稿图 放置控件 界面美化 现在我们把窗体自带的标题栏给去了,用我们自…...
Linux_Shell三剑客grep,awk,sed-08
三剑客的概述: awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找…...
uniapp实现足球数据分析平台移动端H5
文章目录 前言一直想做一款足球分析平台,大概内容包括竞彩分析模块,即时预测模块,初盘分析模块,找来找去还是前端铺子的样式感觉比较好看。 一、界面一栏二、注册界面1.代码说明 三、首页界面四、竞彩预测五、即时预测总结 前言 …...
Redis5优化-Redis
1、Redis关键参数 a、客户端最大连接数 maxclients 60000 注意该参数受到操作系统最大文件句柄的限制(ulimit -n) b、响应 repl-ping-slave-period/repl-timeout repl-timeout 60 1)、说明:slave 会每隔 repl-ping-slave-period(默认10秒)ping一次mast…...
Element UI【详解】el-scrollbar 滚动条组件
el-scrollbar 滚动条组件用于优化页内滚动条的UI效果,使用时必须指定高度! /*el-scrollbar 必须指定高度*/ .scrollMenuBox {height: 200px;width: 100px;border: 1px solid red; } 控制el-scrollbar内滚动条的方法与控制页面的滚动条的方法基本一样&a…...
【精选】基于Python大型购物商城系统(京东购物商城,淘宝购物商城,拼多多购物商城爬虫系统)
目录: 目录: 系统介绍: 系统开发技术 Python语言 Django框架简介 MySQL数据库技术 B/S架构 系统设计 系统总体设计 系统详细界面实现: 系统测试 测试目的 测试用例 本章小结 参考代码: 为什么选择我&…...
QT翻金币小游戏(含音频图片文件资源)
目录 QT翻金币小游戏 音频图片资源文件获取 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT…...
Linux配置JDK8环境变量
目录 一、yum安装1.1 OpenJDK安装1.2 测试是否能够使用1.3 如何卸载JDK 二、手动安装2.1 下载2.2 上传到linux服务器路径2.3 解压2.4 配置环境变量2.5 测试是否能够使用 一、yum安装 1.1 OpenJDK安装 sudo yum install -y java-1.8.0-openjdk-devel1.2 测试是否能够使用 jav…...
Fiddle抓手机app的包
前言 本次文章讲述的是,fiddle获取手机代理,从而获取手机app的http、https请求! 一.下载安装汉化Fiddle 1.点击Fiddler官网下载链接:Download Fiddler Web Debugging Tool for Free by Telerik 2.直接运行,选择自己需…...
Oracle+ASM+High冗余详解及空间计算
Oracle ASM(Automatic Storage Management)的High冗余模式是一种提供高度数据保护的策略,它通过创建多个数据副本来确保数据的可用性和安全性。 以下是关于Oracle ASM High冗余的详细解释: 一、High冗余的特点 1.数据冗余度 在Hi…...
如何为 Nextcloud 配置自动数据库备份 - 应用程序
自动数据库备份模块简化了生成数据库计划备份的过程。这些备份可以存储在各种位置,包括本地驱动器、FTP 服务器、SFTP 服务器、Dropbox、Google Drive、OneDrive、NextCloud 和 Amazon S3 云存储。用户还可以选择启用自动删除过期备份的功能。此外,用户可…...
child_process.spawn简介
child_process.spawn 是 Node.js 中 child_process 模块的一个重要方法,它用于异步地创建子进程来执行指定的命令。下面是对 child_process.spawn 的深入解析: 一、基本用法 spawn 方法的基本语法如下: const { spawn } require(child_pr…...
整理给测试人看的千页面试题
人往高处走水往低处流,九月已来,“金九银十”招聘季还会远吗? 转眼2024年招聘季就要来了,没点真本事真技术,没点面试经验,不了解点职场套路,如何过五关斩六将?如何打败面试官&#…...
Linux 内核中的并发与竞争
1. 引入并发与竞争的概念 在现代计算环境中,多个任务和线程通常会同时执行,因此理解并发和竞争的特性与挑战至关重要。以下是对这两个概念的详细介绍。 1. 并发(Concurrency) 定义: 并发是指多个任务在同一时间段内…...
Ubuntu修改命令提示符格式PS1
命令提示符组成 通过Xshell进入Ubuntu的默认提示符是这样的 rootDESKTOP:~# root: 当前登录用户DESKTOP:主机名~: 当前目录名(即用户主目录)#:超级用户权限(root用户显示)$: 普通用户权限(非root用户显示) 修改命令提示符 step1…...
指针详解(五)
目录 1. 回调函数 2. qsort使用举例 1)排序整型数据 2)排序结构数据 3. qsort函数的模拟实现(冒泡) 1. 回调函数 回调函数就是一个通过函数指针调用的函数 函数的指针(地址)作为参数传递给另一个函数…...
智慧安防/一网统管/视频监控EasyCVR视频汇聚平台的视频轻量化特点及应用
在数字化时代,视频监控已成为保障公共安全、提升管理效率的重要手段。随着技术的不断进步,EasyCVR视频汇聚平台应运而生,平台以其独特的视频轻量化特点在安防监控领域展现出强大的应用潜力。本文将详细探讨EasyCVR视频汇聚平台的视频轻量化特…...
nginx代理转发如何配置
Nginx配置代理转发是一个常见的需求,用于将客户端的请求转发到后端服务器。以下是Nginx代理转发的配置步骤,包括详细的操作步骤和注意事项: 1. 确定Nginx安装和配置文件位置 首先,确保Nginx已经正确安装在服务器上。Nginx的主配…...
JavaScript学习笔记(十三):网络请求JS AJAX
1、AJAX - XMLHttpRequest 对象 1.1 XMLHttpRequest 对象是 AJAX 的基石。 创建 XMLHttpRequest 对象定义回调函数打开 XMLHttpRequest 对象向服务器发送请求 1.2 XMLHttpRequest 对象 所有现代浏览器都支持 XMLHttpRequest 对象。 XMLHttpRequest 对象可用于在后台与 Web…...
go for 循环变量的使用及易错点
1,for 循环变量,整个for循环中变量i始终使用一个变量,i地址不变,存放的内容在变 func main() {for i : 0; i < 10; i {fmt.Printf("值:%v 地址:%v \n", i, &i)} } 打印: 值:0 地址&am…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
