UDP、TCP UDP UDP(User Datagram Protocol,用户数据报协议) UDP是一个轻量级、不可靠、面向数据报的、无连接的协议,多用与可靠性不严格,不是非常重要的传输。...readDatagram(dataGram.data(),dataGram.size()); ui->label_2->setText(dataGram); } } ---- TCP...TCP(Transmission Control Protocol,传输控制协议) 多个网络协议包括HTTP和FTP都是基于TCP协议,TCP是面向数据流和连接的可靠的传输协议。...QTcpSocket继承自QAbstractSocket,与QUdpSocket传输的数据报不同的是,QTcpSocket传输的是连续的数据流,尤其适合连续的数据传输,TCP一般分为客户端和服务端,即C
http://www.cnblogs.com/tornadomeet/archive/2012/06/30/2571001.html 在上一篇博文Qt学习之路_4(Qt UDP的初步使用)... 中,初步了解了Qt下UDP的使用,这一节就学习下TCP的使用。...当然了,本文还是参考的《Qt及Qt Quick开发实战精解》一书中的第5个例子,即局域网聊天工具中的UDP聊天和TCP文件传送部分。...TCP部分程序代码和注释如下: Widget.h: #ifndef WIDGET_H #define WIDGET_H #include class QUdpSocket; class...正在监听时,关闭tcp服务器端应用,即按下close键时就不监听tcp请求了 tcpServer->close(); if (localFile->isOpen())//
一、环境介绍 操作系统: win10 64位 QT版本: QT5.12.6 编译器: MinGW 32 TCP网络调试助手,在网络相关开发、嵌入式开发里使用较多,主要用来测试网络传输,调试等等。...对于基本的QT网络开发入门学习借鉴已经足够了。...void Widget::comboBox_config() { /*第一部分:网络设置*/ //1.1 配置协议 ui->comboBox_protocol->addItem("TCP...Server"); ui->comboBox_protocol->addItem("TCP Client"); //1.2....创建本地客户端TCP套接字*/ LocalTcpClientSocket = new QTcpSocket; /*2.
该示例演示了在本地主机上的TCP客户端和服务器是如何通讯的。 ? 客户端 绑定信号槽。...void Dialog::startTransfer() { // called when the TCP client connected to the loopback server...setText(tr("Connected")); } void Dialog::updateClientProgress(qint64 numBytes) { // called when the TCP...some bytes bytesWritten += int(numBytes); // only write more if not finished and when the Qt...或在以下Qt安装目录找到: C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\network\loopback 相关链接 https://doc.qt.io/qt-5/qtnetwork-loopback-example.html
TCP理论上是稳定的连接,不会丢包,也不会随便一个包插入到一个包的中间,肯定能保证一个数据包的完整性,TCP连接也分两种,一种是长连接,一旦连接了就一直通信,主要用在频繁通信的场景中比如实时上传,还有一种叫短连接...,客户端发完数据或者服务端接收完数据就立即断开连接,主要用在不频繁的通信场景中比如报警上传,毕竟报警的情况在一天中很少发生,采用短连接为佳,可以省去很多系统的开销,Qt对TCP的通信也是封装的很好用,在一些小并发的就几个几十个连接的项目中...,效率还是可以的,据说Qt5的QNetwork组件底层重新改写了,效率比Qt4更高一些,本人也没用去详细的查看对应的源码,只是听说。...通信协议: 采用TCP长连接和UDP协议可选,默认通信端口6000。 采用自定义的xml通信协议。...同时支持TCP和UDP两种模式,封装了TCP模式以及UDP模式的客户端类和服务端类。 图片传输客户端同时支持发送到多个服务端,可以作为一个教师机同屏发送到多个学生机的应用场景。
Tcp端口转发服务器升级了~ 源代码 源代码开源至码云: https://gitee.com/fensnote/qt5tcp_port_forwarding_server 功能简介 这个小工具软件是基于...qt5做的tcp端口转发服务器,可以同时支持多端口转发,实时查看通信过程数据,并且可以在连接会话中发送自己组的协议报文,方便通信调试。...转发实现原理: client----->|server:client|--->server 监听指定的TCP端口,当端口有客户端连接时,就会向指定的远端服务器发起一个tcp连接;这样一个一对一tcp连接...,在这里称之为一个forwardTask;监听端口支持多个tcp连接,每来一个客户端连接,就会新建一个forwardTask对象; 使用场景 主要是调试tcp网络通信时使用: 1.设备上不能联网,可以通过该工具将数据转发到公网服务器上
线程 QT中的QThread提供了与平台无关的线程,一个QThread代表了一个应用程序中可用独立控制的线程,它与进程中的其他线程共享数据,但是是独立执行的,QThread从run()函数开始执行,默认...run()通过exec()来开启事件循环,并在线程内运行一个Qt事件循环。
文章目录 一、Qt 下载 二、Qt 安装 三、组件选择 一、Qt 下载 ---- Qt 开发环境下载地址 : https://download.qt.io/archive/qt/ 该界面可以下载 Qt...各个版本的开发环境 ; Qt 版本选择 , Qt 的各个大版本都在同步更新 , 如 5.1 , 5.9 , 5.14 , 6.0 等 , 每个版本都有不同的性能和功能 , 每个版本进入后的二级目录的小版本...Qt 从 5.15 版本开始 , 不再提供离线安装包 , 需要自己下载源码编译安装 , 因此这里选择安装 Qt 5.14.2 版本 ; 进入 https://download.qt.io/archive.../qt/5.14/5.14.2/ 界面后 , 在根目录中分别是 windows , mac , linux 三个平台的 Qt 安装包 , 选择对应的平台即可 ; 下载 Windows 对应的安装包 qt-opensource-windows-x86...-5.14.2.exe ( 点击该链接下载 ) ; 二、Qt 安装 ---- 双击安装软件 , 点击 " Next " , 没有 Qt 账号 , 输入账户名邮箱 , 密码 , 确认密码 , 同意协议
QT容器 QString类 隐式共享: 隐式数据共享机制去最大化资源有效利用和最小化复制克隆操作。...BOOL qDebug()<<s4.startsWith("哔哩哔哩"); QString s5 = "tom"; qDebug()<<s5.startsWith("tom",Qt...是否包含 qDebug()<<s5.contains("o");//同样可以表明大小写是否敏感 //比较 qDebug()<<QString::compare("Tom","tom",Qt...it_mrw.key()<<":"<<it_mrw.next().value(); } qDebug()<<moneyHash; ---- QVariant类 QVariant类能保存很多Qt...类型的值,包括QColor,QBrush,QFont,QRect,QString及QSize等等,而且能存放Qt的容器类型值。
QT对象树 QT提供了对象树机制,能够自动、有效的组织和管理继承自QObject的对象。...当父类对象析构的时候,其对象链表中的所有(子类)对象也会被析构,父对象会自动,将其从父对象列表中删除,QT保证没有对象会被delete两次。
前言 Qt Quick和Qt Widgets这两种技术,官方是强推Qt Quick的。...https://download.qt.io/official_releases/QtForPython/ 注意: Qt Widgets使用Python结合PySide2开发的时候,窗口的缩放,内部的组件不会随之缩放...所以目前我就不太建议用Qt Widgets形式开发,建议Qt Quick. 常见属性 结合控件的SizePolicy属性,来控制布局管理中的控件的尺寸自适应方式。...Widget() widget.show() sys.exit(app.exec_()) 窗口设置 去掉顶部按钮 from PySide2.QtCore import QFile, Qt...self.setWindowFlags(Qt.FramelessWindowHint)
文件处理 QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。 处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。
模型/视图编程 Qt中的模型/视图架构用来实现大量的数据存储、处理及显示。...::green); item2->setData("C",Qt::EditRole); item2->setData("indexC",Qt::ToolTipRole); item2...::Orientation orientation, int role) const { if(role == Qt::DisplayRole && orientation == Qt::Horizontal...= Qt::DisplayRole) { return QVariant(); } //水平表头 if(orientation == Qt::Horizontal...Qt提供了项目试图的便捷类,这些类底层通过模型/视图框架实现。
rootFrame = document->rootFrame(); //文档格式框架 QTextFrameFormat format; format.setBorderBrush(Qt...setFrameFormat(format); //设置文本边框风格 QTextFrameFormat frameFormat; frameFormat.setBackground(Qt...//字符格式 QTextCharFormat charFormat; //设置背景色 charFormat.setBackground(Qt...{ QTextCharFormat format;//字符格式 format.setFontWeight(QFont::Bold); format.setBackground(Qt...::red); format.setForeground(Qt::green) ; QString pattern = "\\bgood\\b";//匹配单词边界 QRegExp
前言 QT Quick和Qt widgets这两种技术,官方是强推QT Quick的。...QT Quick中布局一般有如下四种方式, 绝对坐标:x、y、z、width、height、top、left 锚(anchors) 布局 定位器(Row、Column、Grid、Flow) 布局管理器(...#00000000 为窗口透明 //QML支持black 等颜色样式(没有#) //QML支持#11cfff 等颜色样式 //QML同样支持RGB格式 flags: Qt.Window...//窗口标志 说明是什么窗口 使用 | 分割,缺省为Qt.Window //Qt.Window 普通窗口模式,带标题栏 //Qt.FramelessWindowHint 隐藏标题栏窗口...opacity:1 } opacity这个属性是对当前组件以及子组件都设置不透明度,所以不太适用 color: Qt.rgba(0,0,0,0)是对当前设置透明度,不会传到子组件 组件 基本组件
事件处理 QT中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。...QT中,任何QObject子类示例都可以接收和处理事件。实际编程中通常实现部件的paintEvent()、mousePressEvent()等事件处理函数来处理特定部件的特定事件。...每个程序的main函数最后都会调用QApplication类的exec()函数,它会使QT应用程序进入到事件循环,使应用程序在运行的时候接收各种事件。...一旦有事件发生,QT便会构造一个相应的QEvent子类的对象来表示它,然后将它传递给QObject对象或子对象。 ---- 鼠标事件 对鼠标实现进行重写来实现你想要达到的功能。...{ statusBar()->showMessage(QString("左键:") +str ); } else if(event->button() == Qt
基于Qt5.14.2的HJ212 TCP服务端接收解析入库程序 之前写过一篇关于环保 HJ212协议解析的博文,有不少做环保行业的人咨询我关于HJ212-2017协议怎么解析,由于我主要是做C++开发的...Boost库方便很多,于是使用Qt写了一个TCP服务端用于接收和解析HJ212-2017报文,然后入库到MySQL数据库中。...该程序是基于Qt5.14.2的HJ212-2017 TCP接收服务端,解析入库程序。...数据库采用MySQL ODBC,使用Qt库编写TCP服务器,接收到HJ212-2017报文后解析入库到MySQL数据库中。...首先设置好TCP服务端的监听端口号,然后再点击上面程序界面的【监听】按钮;然后使用网络调试助手开一个TCP客户端,连接上面的TCP服务端, ? 输入HJ212-2017报文,然后点击发送。
文章目录 一、创建 Qt 桌面程序 二、构建并运行 Qt 桌面程序 一、创建 Qt 桌面程序 ---- 首先要安装 Qt 开发环境 , 参考 【Qt】Qt 开发环境安装 ( Qt 版本 5.14.2 |...Qt 下载 | Qt 安装 ) 博客 ; 打开 Qt Creator 开发环境 , 选择 " 菜单栏 / File / 新建文件或项目 ( N ) " , 在弹出的 " New File or Project...- Qt Creator " 对话框中 , 选择左侧 Application 选项卡 , 选择 " Qt Widgets Application " 应用 , 然后点击 " Choose " 按钮 ,...下一步 " , 该项使用默认设置 , 点击 " 下一步 " , 该项使用默认设置 , 点击 " 下一步 " , 该项使用默认设置 , 点击 " 下一步 " , 上述设置完成后 , 自动生成一个 Qt..., 即可运行该 Qt 桌面程序 , 运行效果如下 :
QT窗口部件 默认部件基类 QT提供的默认部件基类包括QMainWindow、QWidget、和QDialog,这三个部件基类也是用的最多的。...布局有一个中心区域,通常是标准的QT部件,也可以是定制的部件,且必须有一个中心小部件。setCentralWidget()方法可设置中心部件。...QWidget构造函数有两个参数:QWidget*parent = 0,QT:WindowFlages f = 0。...QT:WindowFlags是QT:WindowType,枚举值的组合,用来设置窗口的属性,f=0表示默认为QT:Widget风格,setWindowState()可设置窗体的状态,参数由QT:WindowStates...()方法设置模态,如 QDialog dlg; dlg.setModal(true); dlg.show(); (3)QWidget widget; widget.setWindowModality(Qt
我为什么从web转向qt?...(Qt4版本是qt gui Application , Qt5之后, gui界面用widgets可以做, 用qml也可以做, 就分开了。...故widgets Application 选项 就是qt GUI Application) Widgets适合传统桌面程序 Qt Quick 是 Qt 4.7 主推的技术 Qt 官网介绍:Qt...众所周知,Qt 为跨平台而生,而 QML/Qt Quick 作为 Qt 新生力量,完完全全继承了 Qt 包罗万象的特点,它的诞生为 Qt 进军移动领域迈出了历史性的一步。...随着 Qt 的不断迭代,QML/Qt Quick 也可用于开发传统的桌面程序,而且效率越来越高,这样以来,便可以用 QML/Qt Quick 做任何你想做的事情。
领取专属 10元无门槛券
手把手带您无忧上云