- 2024-10-12Qt监听Windows锁屏、解锁、休眠、唤醒、登录、注销消息
环境:Windows11笔记本,其它环境未测试根据其它博客的直接在窗口nativeEvent中监听WM_WTSSESSION_CHANGE会话消息和WM_POWERBROADCAST电源消息发现不起作用,查阅尝试后找到可行方法如下:会话事件和电源消息都需要先用WindowsAPI注册窗口句柄voidMainWindow::registerSys
- 2024-09-27QT 获取视频帧Opencv获取清晰度
先展示结果:1.获取摄像头的分辨率mResSize.clear();mResSize=camera_->supportedViewfinderResolutions();ui->comboBox_resulation->clear();inti=0;foreach(QSizemsize,mResSize){qDebug()<<msize;ui->comboBox_re
- 2024-09-25Qt - 从网站上获取图片
在Qt中,你可以使用QNetworkAccessManager来从网站上获取图片。以下是一个简单的例子,展示了如何使用Qt下载图片:imagedownloader.h#ifndefIMAGEDOWNLOADER_H#defineIMAGEDOWNLOADER_H#include<QCoreApplication>#include<QNetworkAccessManager>#include<QNetworkRequest
- 2024-09-10Qt使用绿色pdf阅读器打开文件
1.下载SumatraPDF2.设置 3.代码voidMainWindow::on_pushButton_clicked(){QProcess*process=newQProcess();QStringfilePath="C:\\Users\\jude\\Desktop\\su\\11.pdf";QStringsumatraPath="C:\\Users\\jude\\Deskt
- 2024-08-20【Qt】 对象树 与 乱码问题
文章目录1.对象树在堆上开辟空间并管理栈上开辟与堆上开辟的区别2.乱码问题的解释编码方式的区分出现乱码的原因查看当前文件的编码方式如何处理文件与终端编码方式不统一1.对象树在堆上开辟空间并管理该代码只进行new(在堆上开辟空间)而没有delete
- 2024-07-22通过QT进行服务器和客户端之间的网络通信
客户端client.pro#-------------------------------------------------##ProjectcreatedbyQtCreator2024-07-02T14:11:20##-------------------------------------------------QT+=coreguinetwork#网络通信greaterThan(QT_MAJOR_VERSION,4):QT+
- 2024-07-17【QT开发】串口通信管理QSerialPort类详解及实战应用
QSerialPort是Qt提供的一个功能强大、简单易用的串口通信类。通过本文的学习,您应该对QSerialPort的基本使用、高级应用技巧及相关注意事项有了全面的理解。在实际项目中,QSerialPort可以帮助实现与外部设备的串口通信,确保数据的可靠传输和接收。希望本文能帮助您更好地
- 2024-07-16QMap使用
1.实例化QMap对象/*创建QMap实例,第一个参数为QString类型的键,第二个参数为int类型的值*/QMap<QString,int>map;2.插入数据/*插入数据两种方式*/map["math"]=100;map.insert("English",99);//推荐打印输出:QMap((“English”,99)(“math”,100))3.移除
- 2024-07-04Qt Json详细介绍
一.概念介绍JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,常用于前后端数据传输和存储。它具有以下特点:易读性:JSON使用人类可读的文本格式表示数据,采用键值对的方式组织数据,易于阅读和编辑。轻量级:JSON数据格式较为简洁,不包含冗余信息,适合网络传输和存
- 2024-07-02深入理解Qt多线程编程(QtConcurrent)
多线程编程在现代软件开发中变得越来越重要,它能够提高应用程序的响应速度和处理性能。在Qt框架中,除了QThreadPool,QtConcurrent也是一个强大的工具,用于简化和管理多线程编程。目录概述接口详解QtConcurrent::runQtConcurrent::mapQtConcurrent::mappedQtConcurrent::filt
- 2024-06-12QTime序列化时间处理(字符串与秒、毫秒互转)
秒转为时、分、秒格式inttime_sec=11320;QStringtime=QTime(0,0,0).addSecs(static_cast<int>(time_sec)).toString(QString::fromLatin1("HH:mm:ss"));qDebug()<<time;//输出:"03:08:40"毫秒转为时、分、秒、毫秒格式inttime_ms=211320;QString
- 2024-06-05QT笔记:重定向qDebug到控件
QT笔记:重定向qDebug到控件作为log输出的qDebug可以将调试信息打印到调试终端中,但是有时候实际使用将其输出到UI界面也是很有用的,这里记录下如何将qDebug进行控件重定向。测试版本为QT6.6.2代码mainwindow.h//只要能正常编译过qDebug的就行#include<QMainWindow>QT_BEGIN_
- 2024-05-26Qt基础(一)QString 用法
QString类保存16位Unicode值,提供了丰富的操作、查询和转换等函数。该类还进行了使用隐式共享、高效的内存分配策略等多方面的优化。1.字符串拼接使用+运算符//字符串拼接//+运算符staticvoidStringConnect1(){QStringstr1="Welcome";str1=str1+
- 2024-04-05【Qt】系统相关(事件)
目录一、概念二、事件处理三、鼠标事件1.鼠标点击事件2.鼠标释放事件3.鼠标移动事件四、按键事件一、概念事件是应用程序内部或者外部产生的事情或者动作的统称。在Qt中使用一个对象来表示一个事件。所有的Qt事件均继承于抽象类QEvent。事件是由系统或者Qt平台本身
- 2024-03-28QT数据类型和容器用法
Qt库提供了基于通用模板的容器类,这些类可用于存储指定类型的数据项,Qt中这些容器类的设计比STL容器更轻,更安全且更易于使用。容器类也都是隐式共的,它们是可重入的,并且已针对速度/低内存消耗和最小的内联代码扩展进行了优化,从而生成了较小的可执行文件。容器类是基于模板的类,
- 2024-03-15Qt 数据类型介绍
Qt提供了一些常见的数据类型来处理各种数据,包括字符串、日期时间、颜色等。下面是一些常用的Qt数据类型及其使用例程:1.QString:用于处理字符串的类。#include<QString>#include<QDebug>intmain(){QStringstr="Hello,Qt!";qDebug()<<"StringExample
- 2024-03-11Qt 常用数据类型转换
1、int转QStringquint8转QString1quint8k=77;2QStringstr_1;3str_1=QString::number(k,10);4qDebug()<<str_1;//"77"5QStringstr_2=QString("%1").arg(k);6qDebug()<<str_2;//"77"2、quin
- 2024-01-31Visual Studio 2015+Qt编程,如何使用qDebug()打印出信息
问题:VisualStudio2015+Qt编程,调试程序的时候,使用qDebug()发现在vs的输出界面没有打印出qDebug()的信息。找到了最容易的解决办法(此方法只可以解决此解决方案的):1.项目文件名那里鼠标右键,点击属性,打开属性页 2.找到连接器->系统->子系统 3.将子系统由窗口改为控制台,点击
- 2023-12-12笔记:Qt开发之定制化qDebug()函数
目标:实现qDebug()函数的定制输出,包含文件名、函数名、行数等信息1,通过qSetMessagePattern函数,实现定制化输出intmain(intargc,char**argv){QApplicationapp(argc,argv);//改变缺省消息处理程序的输出,信息:线程:功能函数(行数):时间qSetMessagePattern("%{mes
- 2023-12-01Qt之UDP多播(组播)的使用
UdpSocket::UdpSocket(QObject*parent):QObject(parent){//本机IPQStringlocal_ip="192.168.101.11";m_udp_socket=newQUdpSocket(this);connect(m_udp_socket,&QUdpSocket::readyRead,this,&UdpSocket::received_data);
- 2023-12-015、QVariant
QVariant,被称为万能数据类型,实际上它是类似C++的联合union类型。简单的说自定义性能强就像一个盒子几乎可以让你放任意的qt类型,同时可以轻松构造任意类型的任意复杂数据结构,但请注意复杂类型意味着性能和效率的让步。qt6在文档中如下描述:由于C++禁止联合union包含具有非默认构
- 2023-11-223、QMap,QHash,QVector
QMapQMap<Key,T>提供一个从类型为Key的键到类型为T的值的映射。形式为一个键对应一个值。按照键Key的次序存储数据。为了能够支持一键多值,QMap提供QMap<Key,T>::insertMulti()和QMap<Key,T>::values()的函数。//QMap类//1:创建Map实例,第一个参数为QString类型的键值,第
- 2023-11-12Qt 之 QDebug,QString
@TOC前言一、QDebugQDebug是Qt中用于进行调试和输出日志的类。它提供了一种便捷的方式来输出各种类型的数据,并可轻松地与流式输出一起使用,方便调试和查看程序的运行情况。引入QDebug:在使用QDebug之前,需要引入头文件<QDebug>。通常,在Qt的源文件中已经包含了头文件,所以无需额外引
- 2023-10-27Qt和ffmpeg结合制作全能解码播放器
#include<QCoreApplication>#include<QApplication>#include<QWidget>#include<QVBoxLayout>#include<QVideoWidget>#include<QAudioOutput>#include<QDebug>extern"C"{#include<libavformat/avfor
- 2023-10-16Qt -- 判断信号是否绑定成功
1.判断信号是否正确连接通过判断connect的返回值是否为true。bool_ok=connect(this,SIGNAL(signal1()),this,SLOT(slot1()));//打印trueqDebug()<<_ok;2.判断信号是否被连接了receivers返回的是该信号的连接数,如果大于0则为信号有连接。原型:[protected]i