Qt Example各例子技术点说明(四)

Qt Draggable Icons Example 看看看~ Draggable Icons Example例子展示了在同一个应用程序的窗体部件之间如何拖放图像数据。 (关于一些拖放的基本知识在我上一篇博客有介绍。) 例子程序功能是这样的,当我们在一个自定义widget(图中两个相同大小的框框就是自定义的widget)内拖动一个图片,会将图片位置改变。当我们将一个自顶一个widget中的图片拖动放置到另外一个中时,将会复制图到另外一边。 阅读详情

说明:

下面的XX.XX.XX为Qt的版本号,如:5.14.1。
下面总结的都是以Qt的5.14.1版本来说明的,未来的版本也许和这有些不同。
因为Qt自带的例子很多,本博文是第4部分,第1、2、3、5、6部分请参见如下链接:

1.imagegestures

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\widgets\gestures\imagegestures

       本工程展示利用Qt触摸手势技术实现对图片集前翻、后翻、旋转、缩放。通过本工程,需要掌握如下知识点:

  • 手势相关QGestureEvent、QPanGesture、QPinchGesture类的用法 。
  • 掌握QImageReader操作图片的用法。
  • 了解QLoggingCategory类如何管理打印日志功能,具体参见:

                《Qt使用QLoggingCategory管理打印》。

2.network

本大节展示如何利用Qt的network模块进行网络编程。存放目录为:

 Examples\Qt-XX.XX.XX\network

2.1.bearermonitor

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\bearermonitor

          本工程展示如何利用Qt的QNetworkConfiguration、QNetworkConfigurationManager、QNetworkSession类访问、获取本机的网络服务、网络访问接口、网络访问节点、网络会话。通过本工程需要掌握如下知识点:

  • Qt的QNetworkConfiguration、QNetworkConfigurationManager类访问、获取本机的网络服务、网络访问接口、网络访问节点。
  • QNetworkConfiguration、QNetworkConfigurationManager类各函数及信号作用及用法。
  • QNetworkSession类对网络会话的操作。

2.2.blockingfortuneclient

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\blockingfortuneclient

本工程演示如何通过一个网络客户端连接网络服务器端。通过本工程需要掌握如下知识点:

  • 表示主机ip地址信息的QHostAddress类用法。
  • 获取主机网卡信息的QNetworkInterface类用法。
  • QThread用法及如何子类化QThread。
  • 线程同步时用到的QMutexLocker、QWaitCondition、QMutex类的用法。

2.3.broadcastreceiver

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\broadcastreceiver

本工程演示如何通过QUdpSocket接收数据包。通过本工程需要掌握如下知识点:

  • QUdpSocket类用法及QAbstractSocket::BindFlag各个枚举值含义。
  • 如何通过QUdpSocket接收网络数据包。

2.4.broadcastsender

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\broadcastsender

本工程演示如何通过QUdpSocket发送数据包。通过本工程需要掌握如下知识点:

  • QUdpSocket类用法及QHostAddress::SpecialAddress各个枚举值含义,尤其是QHostAddress::Broadcast含义。
  • 如何通过QUdpSocket发送网络数据包。

2.5.dnslookup

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\dnslookup

本工程通过命令行输入参数,实现DNS相关信息查询。通过本工程需要掌握如下知识点:

  • 掌握QDnsLookup类的使用,如何查询DNS信息。
  • DNS查询结果QDnsDomainNameRecord、QDnsHostAddressRecord、QDnsMailExchangeRecord、
  • QDnsDomainNameRecord、QDnsServiceRecord、QDnsTextRecord类的使用。

2.6.download

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\download

本工程通过从命令行读取多个URL,将URL指向的文件下载到本地保存,通过本工程需要掌握如下知识点:

  • 利用QNetworkAccessManager类发送或接收网络请求。
  • 利用QNetworkReply类构建网络回复对象,对收到的网络回复结果(网络数据包)进行管理。
  • 利用QNetworkRequest类构建网络请求对象及如何利用QUrl构建QNetworkRequest类对象。
  • QUrl类对URL的操作。

2.7.downloadmanager

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\downloadmanager

技术点同2.6

2.8.fortuneclient

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\dfortuneclient

本工程通过QTcpSocket类连接服务器。通过本工程需要掌握如下技术点:

  • 通过QHostInfo类查询主机名称和主机绑定的IP地址,掌握QHostInfo类使用。
  • 获取主机网卡信息的QNetworkInterface类用法。
  • 表示主机IP地址信息的QHostAddress用法。
  • QNetworkConfigurationManager、QNetworkSession、QNetworkConfiguration用法。

2.9.fortuneserver

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\fortuneserver

    本工程同2.8提到的fortuneclient工程类似,只不过本工程是服务器端,通过本工程需要掌握如下技术点:

  • 通过QHostInfo类查询主机名称和主机绑定的IP地址,掌握QHostInfo类使用。
  • 获取主机网卡信息的QNetworkInterface类用法。
  • 表示主机IP地址信息的QHostAddress用法。
  • QNetworkConfigurationManager、QNetworkSession、QNetworkConfiguration用法。

2.10.googlesuggest

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\googlesuggest

        本工程实现一个类似Google的搜索下列提示框。当在搜索编辑框输入搜索内容文本时,搜索编辑框下方就出现和编辑框内容近似的搜索提示结果
提示框是通过QTreeWidget控件来实现的。类似QLineEdit的QCompleter。同百度的搜索类似,当在百度搜索时,搜索框下方也会出现很多提示搜索内容。
通过本工程需要掌握如下知识点:

  • QNetworkReply、QNetworkRequest、QNetworkAccessManager类使用。
  • QDesktopServices类的使用。
  • 如何通过QTreeWidget、QLineEdit控件的密切互动,实现搜索下拉提示结果列表。

2.11.http

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\http

本工程通过用户输入http地址表示的文件,从而将该文件下载到本地。通过本工程需要掌握如下技术点:

  • QNetworkAccessManager类的使用,尤其是该类的authenticationRequired信号的使用。
  • QNetworkRequest、QNetworkReply类使用。尤其需要关注QNetworkReply类的downloadProgress用法。
  • QUrl类的使用,尤其需要关注QUrl的fromUserInput、resolved函数用法。
  • QAuthenticator类用法。
  • QNetworkReply类重定向属性QNetworkRequest::RedirectionTargetAttribute。
  • 如何用QProgressDialog类对象来表示下载进度信息。

2.12.loopback

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\loopback

     本工程创建两个QTcpServer对象,分别作为服务器和客户端。客户端向服务器端发送报文,服务端将客户端发送的报文读取。通过本工程需要掌握如下技术点:

  • QTcpServer类函数和信号的使用,会利用该类创建服务器端和客户端。
  • 服务器端和客户端是如何进行监听、连接、数据发送、读取交互的。

2.13.multicastreceiver

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\multicastreceiver

   本工程演示利用QUdpSocket类实现多播接收端,该工程需要multicastsender工程一起联动才能看到程序效果。通过本工程,需要掌握如下技术点:

  • QUdpSocket类的使用。尤其是利用该类的joinMulticastGroup实现多播组。
  • 在IP6先利用QNetworkDatagram类对象接收报文。掌握QNetworkDatagram类的用法。

2.14.multicastsender

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\multicastsender

   本工程演示利用QUdpSocket类实现多播发送端,该工程需要multicastreceiver工程一起联动才能看到程序效果。通过本工程,需要掌握如下技术点:

  • QUdpSocket类的使用。尤其在IP4下对多播TTL的控制。
  • UDP模式下,IP4和IP6发送数据的区别,后者需要判断QUdpSocket类对象的状态为QAbstractSocket::BoundState才能发送数据。

2.15.network-chat

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\network-chat

本工程演示一个有状态的对等聊天客户端。这个例子使用QUdpSocket和QNetworkInterface广播来发现它的对等点,实现网络聊天。对本工程的详细分析参见《Network Chat Example》博文,通过本工程,需要掌握如下技术点:

  • 掌握如何通过QNetworkInterface类获取网络适配器(网卡)信息。
  • 利用Qt的qEnvironmentVariable、qgetenv函数获取系统环境变量。
  • 利用QNetworkAddressEntry类表示IP、掩码地址、广播地址。
  • QHostAddress、QTcpSocket、QCborStreamWriter、QCborStreamReader类的使用。

2.16.securesocketclient

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\securesocketclient

本工程演示如何利用QSslSocket类进行安全套接字发送报文(对发送报文加密)。通过本工程需要掌握如下技术点:

  • QAbstractSocket::SocketState枚举中的每个枚举值表示的各种套接字状态的深刻理解。
  • QSslSocket类的使用。
  • QSslCertificate类的使用。

说明:本工程启动时,如果QSslSocket::supportsSsl()返回false,导致程序不能起来,则请参考《QSslSocket::supportsSsl()返回false问题解决》博文。

2.17.secureudpclient

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\secureudpclient

本工程是客户端,需要服务端即secureudpserver一起跑才有效果。通过本工程需要掌握下列技术点:

  • QHostInfo、QUdpSocket、QHostAddress、QDtls、QNetworkInterface、QSslSocket、QSslConfiguration类的使用。
  • 一些不常用但很实用的小技术点:QComboBox类的insertSeparator方法插入分隔项;QByteArray的toHex转为16进制方法。

2.18.secureudpserver

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\secureudpserver

本工程讲解DTLS服务端技术。DTLS服务端需要结合DTLS客户端即secureudpclient一起跑才有效果。通过本工程需要掌握下列技术点:

  • QSslConfiguration、QUdpSocket、QHostAddress、QDtls、QNetworkInterface、QSslPreSharedKeyAuthenticator类的使用。
  • qExchange、std::exchange函数用法。
  • QTextEdit类插入html,以便用富文本、用不同颜色显示报文等信息。
  • Q_UNREACHABLE宏用法。

2.19.threadedfortuneserver

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\threadedfortuneserver

本工程通过QTcpServer类构建一个基于TCP的简单服务器来展示相关类及技术点的使用,通过本例子,需掌握如下技术点:

  • QTcpServer类是使用及如何子类化该类。
  • 当有客户端来链接时,如何为客户端生成一个QThread的线程子类以提供服务。
  • 通过QNetworkInterface类获取主机地址QHostAddress类。
  • 掌握QThread类的使用,关于该类的详细使用,参见《QThread、moveToThread用法详述》

2.20.torrent

该工程存放在Qt安装目录下的

 Examples\Qt-XX.XX.XX\network\torrent

本工程实现利用种子下载程序,类似迅雷。通过本工程需要掌握如下技术点:

由于Qt官方自带的例子很多,一下看不完,每看完一个例子,记录一个。未完,待续!

Qt学习:Qt自带example运行报错的问题解决 Qt官方安装包为我们提供了不少example以供学习者参考,但是在运行这些例程时,会发现通不过编译,报错处有一百多项之多。参考了下网上的解决办法,结合自己的解决过程,总结如下:       1、在系统环境变量中添加 INCLUDE:    C:\Qt\2010.05\qt\include;C:\Qt\2010.05\mingw\include; 阅读详情

相关推荐

读Qt示例之Modbus Master example(一)

读Qt示例之Modbus Master example(一)本示例来自于Qt5.6.2本篇主要看WriteRegisterModel这个模型类是怎么实现的 涉及知识点主要是model/view中的model WriteRegisterModel有四个变量public: int m_number; //读写的个数 int m_address;

fsnAltria的博客 1万+

Qt Example各例子技术点说明(一)

汇总Qt Example各例子演示功能及涉及到的技术难点

danshiming的博客 3187

Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(三)qslider禁用鼠标点击跳转

Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(三)qslider禁用鼠标点击跳转 转载请标明出处 上一篇文章Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(二)qslider鼠标点击跳转说到,QSlider的鼠标点击跳转精度不高,所以索性禁用掉鼠标跳转功能。这里就不用我们之前重写的MySlider类了,直接使用QSlider即可。 首先,将slid

qq_36103026的博客 1196

简单的QT示例

刚学qt,写了一个简单的qt例子。在图形中有:东西南北中五个按钮,按东图形会向右移动10个像素,以此类推,按中会复原。

蜂蜂的博客 1372

Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(一)视频无法播放

Qt 例子工程 Media Player Example 应用过程中出现的问题(一)视频无法播放 Qt播放视频报错 DirectShowPlayerService::doRender: Unresolved error code 0x80040266 Qt 中的多媒体播放,底层是使用DirectShowPlayerService,所以安装一个DirectShow解码器,就可以解决运行出错问题。 博主首先按照别的博客的方法,安装了LAV Filters(LAVFilters下载链接:installer方式直接

qq_36103026的博客 2490

Qt Tab Dialog Example 看看看~

Tab Dialog例子展示怎么使用QTabWidget构造一个标签对话框。 本例由一个TabDialog类组成,它提供了三个标签栏,每一个都包含了有关打开文件的信息,还提供了两个标准按钮,用于accept和reject对话框的内容。 QTabWidget类提供一个栈型的标签组件。它提供一个QTabBar和一个“页区域(page area)”它用来展示每页中相关的标签。

—— 然 之 8718

Qt Example各例子技术点说明(三)

Qt Example各例子功能说明

danshiming的博客 2009

Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(二)qslider鼠标点击跳转

Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(二)qslider鼠标点击跳转 转载请标明出处 Qt例子工程 Media Player Example中视频进度条和音量条都采用的是拖动滑块触发相应功能(跳转、增减音量)。然后就会发现以下问题: 如果试图使用鼠标点击某个位置来跳转,就会发现滑块并没有跟随鼠标移动,而是向对应方向移动一个固定大小的距离。 因为在默认情况下,点击QSlider,QSlider的滑动条并不会移动到所

qq_36103026的博客 968

Qt Example各例子技术点说明(二)

记录Qt官方自带的各例子用到的技术

danshiming的博客 1621

【QT项目】QT基础入门——项目案例翻金币小游戏

前面我们已经把基础的QT知识学习了一遍,已经足够运用这些知识做一个简单的小项目了,那么现在就让我们将所学的知识运用到现实操作中,来做一个简单的翻硬币小项目练练手吧

嵌入式技术开发 6568

Qt入门教程100篇(已完结)

Qt5入门教程,Qt6入门教程。包含了: Qt环境搭建篇、Qt数据类型篇、Qt中STL篇、Qt核心篇、Qt核心对象QObject篇、Qt基础控件篇、Qt对话框篇、Qt高级控件篇、Qt数据模型篇、QSS篇、Qt文件篇 、Qt硬件编程、Qt的一些demo、Qt项目开发篇。......

小鱼酱的博客 15万+

Qt Example各例子技术点说明(五)

Qt Example各例子技术点说明(五)

danshiming的博客 1108

QT开发 一个超简单的入门例子(详细)

实现功能:可以通过按钮打开本地图片,并显示在主界面上 效果如下: 步骤: 1.新建项目 点击New Project,选择Qt窗体应用,点击Choose 给工程命名,选择工程保存的路径,点击下一步 点击完成 任意选择一个编译器,我这里选择的是MinGW 32位,点击下一步 点击下一步 2.编辑UI界面 改变窗体尺寸 新建Label,并调整位置和尺寸 新建按钮,双击按钮更改文字,调整位置和尺寸 在按钮上点击右键,选择 “转到槽” 选择第一个,点击Ok 3.编辑代码 此时,页面会跳转到代码编辑界面,在代码编辑界面添加如下代码(只需要更改mainwindow.cpp中的代码即可)

Qt Example各例子技术点说明(六)

Qt Example各例子技术点说明(六)

danshiming的博客 679

MySQL 分库分表及其平滑扩容方案

MyCAT不仅仅可以用作读写分离,以及分表分库、容灾管理,而且可以用于多租户应用开发、云平台基础设施,让你的架构具备很强的适应性和灵活性。分表对于一张多行(记录)多列(字段)的二维数据表,又分两种情形(1)垂直分表竖向切分,不同分表存储不同的字段,可以把不常用或者大容量、或者不同业务的字段拆分出去;扩容前每个节点的数据,有一半要迁移至一个新增节点中,对应关系比较简单。此时,四个节点的数据都已完整,只是有冗余(多存了和自己配对的节点的那部分数据),择机清除即可(过后随时进行,不影响业务)。...

m0_71777195的博客 1929

Qt Tab Widget 实战:如何打造一个可动态增删的标签页管理器(附完整代码)

本文深入探讨了使用Qt框架中的Tab Widget控件构建动态标签页管理器的实战方法。通过分析动态增删的核心挑战,提供了完整的C++代码示例,涵盖信号槽机制、页面生命周期管理、上下文菜单实现以及状态持久化等关键功能,帮助开发者打造高效、用户友好的桌面应用界面。

bb456的博客 1043

Qt5官方demo解析集36——Wiggly Example

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集35——Music Player

Cloud_Castle的博客 1万+

DDR核心机制解析:从Burst到Prefetch的性能跃迁

本文深入解析了DDR内存性能跃迁的核心机制,重点阐述了Burst(突发传输)与Prefetch(预取)技术的协同工作原理。Burst机制通过连续传输数据减少访问延迟,而Prefetch则通过内部预取数据提升吞吐量,两者结合完美匹配现代CPU缓存行需求,是DDR3等内存实现高效带宽的关键。

weixin_29232121的博客 135

Qt 官方例子 Callout Example

QtoolTip自定义实现。 Callout.cpp /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ...

好习惯成就伟大 2586

Mcgs 屏幕Modbus RTU通讯调试

昆仑通态屏幕作为Modbus Master 与 Modbus Slave通过RS485接口实现通信的调试记录

madao1234的博客 5569

下载和运行GitHub上的代码教程总结

从昨天开始就想着从GitHub上下载一个开源的Vue的实战项目,希望能从中学习更多的Vue的实用内容,结果搞了半天好不容易下载了,不知道怎么弄。然而,今天终于成功了,激动地我赶紧来记录一下。 如何从GitHub上下载自己需要的项目: 1.首先,你要有一个自己的GitHub(https://github.com/)的账号。关于如何注册GitHub的账号以及如何获取你的SSH密钥这个问题,请大家参...

不怕万人阻挡,只怕自己投降 29万+

探索Qt与QML的无限可能:Qt-QML-Example项目推荐

探索Qt与QML的无限可能:Qt-QML-Example项目推荐 【下载地址】Qt-QML-Example完整的Qt与QML示例合集 Qt-QML-Example: 完整的Qt与QML示例合集欢迎来到Qt-QML示例集合,这是一份精心整理的资源,专为希望深入学习和掌握Qt与QML技术的开发者准备 ...

gitblog_09765的博客 868

基于未来出行解决方案的场景实例:城市空中交通(UAM)的飞行路径规划与避障

本文介绍了使用Simulink进行城市空中交通(UAM)飞行路径规划与避障的仿真方法。主要内容包括:1)UAM系统架构与核心挑战;2)详细建模步骤,从城市3D环境构建到飞行器动力学模拟;3)全局路径规划(A*/RRT*)和局部避障(DWA/APF)算法实现;4)多机协同与冲突解决;5)关键场景仿真与性能评估;6)高级功能拓展方向。通过Simulink的数字孪生系统,可有效验证UAM在复杂城市环境中的可行性,为未来立体交通发展提供技术支撑。

xiaoheshang_123的博客 257

Cover Qt WebChannel例子——Qt WebChannel Chatserver Example

最近想要做一个把osg放到IE端的功能,在之前的博客中已经提到了怎么进行封装。但是对于Qt 与IE (或者说js)的信号槽的交互,我没做过,也不太了解。   在Qt5.3及以下版本QT的网络通信封装的地方不一样,主要是QtWebKitWidgets. 在以上的版本会发现这个模块就不一样了。(主要可以看看这篇文章:https://blog.csdn.net/liuyez123/article/det...

Scarlett_OHara的博客 604

基于Claude Code的 规范驱动开发(SDD)指南

传统的AI辅助开发,如同手工作坊,我们向AI描述想法,它给我们零散的部件,我们再手动打磨、组装。这个过程充满了不确定性、信息损耗和重复劳动。本指南将尝试引领您进入软件开发的“工业时代”。在这里,

形上得其象,形下合于数;阴阳自济,玄理自明。 2747

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: StarUML 及9种UML图
下一篇: postGIS数据库建表时,没有geometry等空间数据类型解决
荆楚闲人
博客等级 码龄20年 3万+粉丝 473原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值