当前位置: 首页 > news >正文

QT DAY4

1.思维导图

 2.手动完成服务器的实现,并具体程序要注释清楚

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTcpServer>
#include <QTcpSocket>
#include <QMessageBox>
#include <QList>
#include <QDebug>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QListWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTQPushButton *btn1 = new QPushButton;QLabel *lab = new QLabel;QLabel *lab2 = new QLabel;QLineEdit *edit = new QLineEdit;QListWidget *list=new QListWidget;public:Widget(QWidget *parent = nullptr);~Widget();public slots:void btn1_clicked();void newConnection_slot();  //自定义处理newConnection信号的槽函数void readyRead_slot();  //自定义处理readyRead信号的槽函数private:Ui::Widget *ui;//定义客户端容器QList<QTcpSocket*> socketList;//定义服务器指针QTcpServer *server;};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//给服务器指针实例化空间server = new QTcpServer(this);qDebug()<<this->size();qDebug()<<this->rect().size();qDebug()<<this->geometry().size();qDebug()<<this->frameGeometry().size();qDebug()<<"width:"<<this->width()<<"  height:"<<this->height();qDebug()<<"width:"<<this->size().width()<<"    height:"<<this->size().height();//设定窗口指定大小this->setFixedSize(500,500);//窗口标题qDebug()<<this->windowTitle();  //获取窗口标题this->setWindowTitle("服务器");//设置标签lab=new QLabel(this);lab->resize(500,400);lab->setAlignment(Qt::AlignCenter);  //垂直和水平全部居中//设置EditList窗口,显示运行结果list=new QListWidget(this);list->resize(500,300);//端口号标签lab2=new QLabel(this);lab2->resize(100,50);lab2->setText("端口号:");lab2->move(90,350);//设定端口号edit=new QLineEdit(this);edit->resize(200,50);edit->move(150,350);//设定按钮btn1=new QPushButton(this);btn1->setText("启动服务端");btn1->resize(90,50);btn1->move(85,420);
}Widget::~Widget()
{delete ui;
}
//启动服务器按钮对应的槽函数
void Widget::btn1_clicked()
{//获取端口号quint16 port=edit->text().toUInt();if(server->listen(QHostAddress::Any,port)){QMessageBox::information(this,"","服务器启动成功");}else{QMessageBox::information(this,"","服务器启动失败");}connect(server,&QTcpServer::newConnection,this,&Widget::newConnection_slot);
}//处理newConnection信号的槽函数的实现
void Widget::newConnection_slot()
{qDebug()<<"有新客户连接";QTcpSocket* s=server->nextPendingConnection();//将套接字放入到客户端容器中socketList.push_back(s);connect(s,&QTcpSocket::readyRead,this,&Widget::readyRead_slot);
}//关于readyRead信号对应槽函数的实现
void Widget::readyRead_slot()
{for(int i=0;i<socketList.count();i++){if(socketList.at(i)->state()==0){//移除客户端socketList.removeAt(i);}}for(int i=0;i<socketList.count();i++){if(socketList.at(i)->bytesAvailable()!=0){QByteArray msg = socketList.at(i)->readAll();//将数据展示到list窗口中list->addItem(QString::fromLocal8Bit(msg));//将数据发送给所有客户端for(int j=0;j<socketList.count();j++){socketList.at(j)->write(msg);}}}
}

相关文章:

QT DAY4

1.思维导图 2.手动完成服务器的实现&#xff0c;并具体程序要注释清楚 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> #include <QMessageBox> #include <QList> #include <QD…...

最新Ai创作源码ChatGPT商用运营源码/支持GPT4.0+支持ai绘画+支持Mind思维导图生成

本系统使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到本系统&#xff01; 支持GPT3模型、GPT4模型Midjourney专业绘画&#xff08;全自定义调参&#xff09;、Midjourney以图生图、Dall-E2绘画Mind思维导图生成应用工作台&#xff08;Prompt&#xff09;AI绘画广场自定…...

一个go的支持多语言的error自动生成插件

大家好&#xff0c;我是peachesTao&#xff0c;今天给大家推荐一个go的支持多语言的error自动生成的插件&#xff0c;插件主页可以访问下方链接。 在一个多语言国际化的项目中&#xff0c;后端接口返回给前端的错误描述也需要国际化&#xff0c;我们来看一下后端给前端返回多语…...

wireshark抓包新手使用教程(超详细)

一、简介 Wireshark是一款非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。 为了安全考虑&#xff0c;wireshark只能查看封包&#xff0c;而不能修改封包的内容&#xff0c;或者发送封包。 wireshark能获取HTTP&#xff0c;也…...

平均列顺序对列排斥能的影响

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A有6个1&#xff0c;B有4个1&#xff0c;并且让这10个1的位置没有重合。比较迭代次数的顺序。 其中有9组数据 差值结构 A-B 迭代次数 构造平均列 …...

微信小程序-处理ios无法播放语音的问题

背景 框架&#xff1a;tarovue3 问题&#xff1a;今天搞小程序语音播放功能&#xff0c;开放工具播放正常&#xff0c;但是到ios手机上调试时无法播放&#xff0c;在网上找到个好办法 解决方案 核心代码 Taro.setInnerAudioOption({obeyMuteSwitch: false // 解决有一些IOS无…...

区块链 2.0笔记

区块链 2.0 以太坊概述 相对于比特币的几点改进 缩短出块时间至10多秒ghost共识机制mining puzzle BTC:计算密集型ETH&#xff1a;memory-hard(限制ASIC) proof of work->proof of stake对智能合约的支持 BTC&#xff1a;decentralized currencyETH&#xff1a;decentral…...

深入理解Vue响应式系统:数据绑定探索

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

web流程自动化详解

今天给大家带来Selenium的相关解释操作 一、Selenium Selenium是一个用于自动化Web浏览器操作的开源工具和框架。它提供了一组API&#xff08;应用程序接口&#xff09;&#xff0c;可以让开发人员使用多种编程语言&#xff08;如Java、Python、C#等&#xff09;编写测试脚本&…...

什么是框架?为什么要学框架?

一、什么是框架 框架是整个或部分应用的可重用设计&#xff0c;是可定制化的应用骨架。它可以帮开发人员简化开发过程&#xff0c;提高开发效率。 项目里有一部分代码&#xff1a;和业务无关&#xff0c;而又不得不写的代码>框架 项目里剩下的部分代码&#xff1a;实现业务…...

什么是 Sass?

Sass 介绍 什么是 Sass&#xff1f; 官方标语 世界上最成熟、最稳定、最强大的专业级 CSS 扩展语言。怎么理解这句话呢&#xff1f;我们平时写的 CSS 代码可以理解为静态样式语言&#xff0c;而 Scss 就是动态样式语言&#xff0c;何为动态&#xff1f;就是让你写 CSS 跟写 …...

Kotlin~Memento备忘录模式

概念 备忘录模式是一种行为型设计模式&#xff0c;用于捕获和存储对象的内部状态&#xff0c;并在需要时将对象恢复到之前的状态。 备忘录模式允许在不暴露对象内部实现细节的情况下&#xff0c;对对象进行状态的保存和恢复。 角色介绍 Originator&#xff1a;原发器&#x…...

单链表的多语言表达:C++、Java、Python、Go、Rust

单链表 是一种链式数据结构&#xff0c;由一个头节点和一些指向下一个节点的指针组成。每个节点包含一个数据元素和指向下一个节点的指针。头节点没有数据&#xff0c;只用于表示链表的开始位置。 单链表的主要操作包括&#xff1a; 添加元素&#xff1a;在链表的头部添加新…...

微信小程序 background-image直接设置本地图片路径,编辑器正常显示,真机运行不显示解决方法

项目场景 微信小程序&#xff0c;设置background-image直接设置本地图片路径。 问题描述 编辑器正常显示&#xff0c;真机运行不显示 原因分析 background-image只能用网络url或者base64图片编码。 解决方案 1、将本地图片转为网络url后设置到background-image上 例如&…...

SQLite Studio 连接 SQLite数据库

1、在SQLite中创建数据库和表 1.1、按WINR&#xff0c;打开控制台&#xff0c;然后把指引到我们的SQLite的安装路径&#xff0c;输入D:&#xff0c;切换到D盘&#xff0c;cd 地址&#xff0c;切换到具体文件夹&#xff0c;输入“sqlite3”&#xff0c;启动服务 1.2、创建数据库…...

【业务功能篇58】Springboot + Spring Security 权限管理 【中篇】

4.2.3 认证 4.2.3.1 什么是认证&#xff08;Authentication&#xff09; 通俗地讲就是验证当前用户的身份&#xff0c;证明“你是你自己”&#xff08;比如&#xff1a;你每天上下班打卡&#xff0c;都需要通过指纹打卡&#xff0c;当你的指纹和系统里录入的指纹相匹配时&…...

Docker挂载目录失败问题解决

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

css中隐藏页面中某一个元素有什么方法?

我们可以使用css的z-index属性&#xff0c;将元素的-index去给它设置一个负值&#xff0c;使它隐藏在其他元素的后面。使用css样式进行隐藏我们可以使用display这个属性。&#xff08;1&#xff09;使用display:none完全进行隐藏元素&#xff0c;并且不占据空间也不会影响页面布…...

Unity 多语言问题C#篇

DateTime.ToString()不同语言环境问题 问题描述&#xff1a;PlayerPrefs.SetString("timeKey", DateTime.Now.ToString());切换系统语言后DateTime.Parse(PlayerPrefs.GetString("timeKey"));报错FormatException: String was not recognized as a valid D…...

深度学习和神经网络

人工神经网络分为两个阶段&#xff1a; 1 &#xff1a;接收来自其他n个神经元传递过来的信号&#xff0c;这些输入信号通过与相应的权重进行 加权求和传递给下个阶段。&#xff08;预激活阶段&#xff09; 2&#xff1a;把预激活的加权结果传递给激活函数 sum :加权 f:激活…...

RC滤波器设计实战:从基础到高阶应用

1. RC滤波器设计基础与核心概念在嵌入式系统设计中&#xff0c;信号滤波是每个硬件工程师必须掌握的核心技能。我从业十余年处理过无数传感器信号&#xff0c;发现90%的噪声问题都可以通过合理设计的RC滤波器解决。与动辄使用运放或DSP方案相比&#xff0c;无源RC滤波器以极低成…...

Redis 故障排查与应急手册:从理论到实践

Redis 故障排查与应急手册&#xff1a;从理论到实战 场景&#xff1a;线上 Redis 集群出现性能抖动、连接异常、数据丢失等问题时的快速响应指南 一、故障分级与响应策略 在深入技术细节之前&#xff0c;先建立故障分级意识&#xff1a; 级别现象响应时间核心目标P0集群完全不…...

LeetCode 1143. Longest Common Subsequence 题解

LeetCode 1143. Longest Common Subsequence 题解 题目描述 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长公共子序列的长度。 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;也可以…...

基于Xilinx Artix-7的JPEG2000图像无损压缩系统:完整工程与独立模块化设计

JPEG2000 图像无损压缩算法 FPGA第三方IP JPEG2K是基于xilinx Artix-7的FPGA完整工程&#xff0c;内有完整的MATLB算法工程和RTL源代码&#xff0c;还有详细的文档 JPEG2000压缩系统部分由6个独立模块组成&#xff1a;去马赛克模块、伽马校正模块、分量间变换模块、小波变换模…...

手把手教你用FBRT-YOLO在VisDrone数据集上跑出SOTA:从环境配置到模型推理的保姆级教程

手把手教你用FBRT-YOLO在VisDrone数据集上跑出SOTA&#xff1a;从环境配置到模型推理的保姆级教程 航拍图像目标检测一直是计算机视觉领域的难点&#xff0c;尤其是小目标检测问题。无人机拍摄的图像分辨率高、目标密集且尺寸小&#xff0c;传统检测算法往往难以兼顾精度和速度…...

告别网络调试焦虑:用STM32CubeMX+FreeRTOS,给LAN8720A和LWIP做个“健康检查”与性能小优化

STM32网络子系统深度优化&#xff1a;从连通性测试到工业级稳定性实战 当你熬夜调试的嵌入式设备终于能Ping通时&#xff0c;那种喜悦感堪比程序员第一次写出"Hello World"。但很快你会发现&#xff0c;真正的挑战才刚刚开始——那些在演示视频里永远不会出现的诡异断…...

为什么说降AI率不等于降质量从算法角度看本质

“用了工具处理&#xff0c;论文会不会变差&#xff1f;” 这是使用降AI率工具前很多同学最担心的问题。这篇文章从算法逻辑出发&#xff0c;把这个问题说清楚。 简短结论&#xff1a;好的降AI工具不会降低论文质量&#xff1b;差的工具会。判断哪个是好工具&#xff0c;这篇…...

自动驾驶敢自己开?揭秘车顶上帝视角

《人工智能AI之计算机视觉:从像素到智能》 模块五:未来与生态——多模态、产业与思维升维(认知拓展) 第 19 篇 自动驾驶敢自己上路?老马带你拆解车顶的“上帝视角” 哎,说句实在话,你有没有过这种让人后背发凉的经历? 大半夜的,下着小雨,你开着车走在没路灯的国道…...

Win11Debloat:让Windows系统重获新生的一站式自动化优化方案

Win11Debloat&#xff1a;让Windows系统重获新生的一站式自动化优化方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

逆向实战:WASM加密在荔枝网x-itouchtv-ca参数中的定位与Hook技巧

1. WASM加密技术解析 WebAssembly&#xff08;简称WASM&#xff09;是一种新兴的二进制指令格式&#xff0c;它的出现让前端加密技术迈上了新台阶。与传统JavaScript加密相比&#xff0c;WASM具有明显的性能优势。在我的实际测试中&#xff0c;相同加密算法在WASM环境下的执行速…...