![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT实用基础
OH,CGWLMXUP
这个作者很懒,什么都没留下…
展开
-
QFile接口详解
1、QFile::QFile()构造一个没有名字的QFile对象2、QFile::QFile(const QString&name)构造一个以name为文件名的QFile对象。注:也可以QFile::QFile(),然后调用setName()方法来实现类似动作。3、boot QFile::atEnd()const [虚函数]如果已经到达文件末尾则返回TRUE,否则返回...转载 2018-09-11 11:51:23 · 755 阅读 · 0 评论 -
通过心跳包的范式检查tcp连通状态
#include "CheckConnectThread.h"#include "../utils/Utils.hpp"CheckConnectThread::CheckConnectThread(QObject *parent) : QThread(parent) , m_isStarted(false){}CheckConnectThread::~CheckCon...原创 2018-09-07 11:42:46 · 342 阅读 · 0 评论 -
QLockFile的使用
当一个临时文件被创建时,当应用程序关闭时清除这个临时文件。因此,在应用程序的第二个实例启动时检查该文件是否已经创建了一个打开的应用程序实例,如果这个文件存在那么第二个就可以不启动了。#include <QtNetwork/QLocalSocket>#include "SingleApplication.h"SingleApplication::SingleApplicati...原创 2018-09-07 14:46:52 · 3031 阅读 · 0 评论 -
QString转QJsonValue
QJsonValue stringToJson(const QString &str){ QString context = QString("{%1}").arg(str); QJsonParseError err; QJsonDocument doc = QJsonDocument::fromJson(context.toUtf8(), &err);...原创 2018-09-07 14:48:47 · 3578 阅读 · 0 评论 -
QJsonObject转QByteArray
QByteArray jsonToByteArray(const QJsonObject &obj, const QJsonDocument::JsonFormat type){ QJsonDocument doc(obj); if (type == QJsonDocument::Compact) { return doc.toJson(QJson...原创 2018-09-10 09:53:23 · 636 阅读 · 0 评论 -
QT删除文件夹以及多层文件夹下的所有内容
//删除文件夹bool Utils::deleteDir(const QString &path){ if (path.isEmpty()){ return false; } QDir dir(path); if(!dir.exists()){ return true; } dir.setFilter(QD...原创 2018-09-09 19:40:17 · 8167 阅读 · 1 评论 -
QTableWidget的美化处理
QString css = QString("QTableWidget{border:none;border:0px;background-color: rgba(219, 255, 171, 0);}" "QTableWidget::item{background-color: rgba(219, 255, 171, 0);color:#663...原创 2018-09-09 19:40:03 · 1171 阅读 · 0 评论 -
QT界面上的控件不继承整个窗体的背景图等效果
QT界面上的控件不继承整个窗体的背景图等效果QT处理父窗体设置setStyleSheet或者背景等窗体上的子控件也会继承过来的处理方式 this->setObjectName("XESAIMandarin"); this->setStyleSheet("QMainWindow#XESAIMandarin{border-image: url(:/Source/re...原创 2018-09-09 19:39:57 · 2516 阅读 · 0 评论 -
QTimer的使用
一种是通过常规的connect连接信号和槽 m_checkTimer = new QTimer(); m_checkTimer->setInterval(10000); connect(m_checkTimer, &QTimer::timeout, this, &CheckConnectThread::onTimeout); m_checkTi...原创 2018-09-09 19:39:49 · 834 阅读 · 0 评论 -
QT获取设备网络类型
enum NetType { Wireless, // 无线 Wired, // 网线 Other, // 未知};int netType(){ NetType nettype = Other;#ifdef Q_OS_WIN PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO pAda...原创 2018-09-13 14:55:48 · 772 阅读 · 0 评论 -
QT获取设备内存大小
unsigned int getPhysMem(){ static unsigned int size = 0;#ifdef Q_OS_WIN if (size == 0) { MEMORYSTATUSEX memoryInfo; memoryInfo.dwLength = sizeof(memoryInfo); GlobalMe...原创 2018-09-13 15:06:19 · 1318 阅读 · 0 评论 -
QT的QScrollArea使用详解
有些时候,我们界面能展示的区域被限定的很小,但是需要展现的控件、内容却很多,在限定大小的区域中无法全部显示。这个时候就需要滚动条了。在Qt中有一个很好的类 QScrollArea。有两种方式可是实现滚动区域:第一种直接用 Qt Designer 去设计ui文件:拖入QScrollArea然后进行布局即可。第二种是代码实现:QLabel *imageLabel = new Q...原创 2018-09-13 16:54:50 · 13860 阅读 · 1 评论 -
windeployqt工具来进行Qt的打包发布
Qt 官方开发环境使用的动态链接库方式,发布软件的时候需要复制一大堆 dll,工作量大而且很容易出错,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。正常编译完后直接打开会提示如下错误:执行发布程序的命令打开cmd窗口[如若不知道如何打开请自行搜索],将 windeployqt 和 应用程序 拖入CMD窗口 也可以...原创 2018-09-13 17:14:00 · 412 阅读 · 0 评论 -
QT之QSharedMemory 详解 进程间通信
QSharedMemory的几个重要接口:setKey(),这是标记共享内存的一个标识符,在整个操作系统的共享内存中,用这个key去标识它,唯一标识。create(),创建共享内存,向os申请内存空间,如果不创建,调用attach()会失败,在create()的时候,需要制定共享内存的大小,即字节数,跟windows的CreateFileMapping()一样,都是需要在create...原创 2018-09-13 17:27:38 · 9247 阅读 · 1 评论 -
QT中使用7z.exe将文件解压到置顶目录(覆盖解压)
bool do7z(const QString &path, const QString &dstPath){ QProcess m_7z; QString exe = "7z.exe"; QStringList args; args << "x" << path << "-o" + dstPa原创 2018-09-13 17:44:17 · 1685 阅读 · 0 评论 -
0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg
一、ffmpeg下载 ffmpeg源码可在其官网上下载,网址:https://ffmpeg.zeranoe.com/builds/ 在官网上从左到右选择版本和系统,然后点击右侧的static,shared和dev,分别下载到本地。 二、解压ffmpeg 将下载下来的三个包分别解压,并分别对应命名为static,shared,dev(重新命名是为了后面配置简化)。之后,将这三个文件夹复制到...原创 2018-09-20 16:34:47 · 749 阅读 · 0 评论 -
QT实现无边框半透明窗体
很简单,两行代码:setWindowFlags(Qt::Window|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint|Qt::Tool|Qt::X11BypassWindowManagerHint); this->setWindowOpacity(0.7); //设置窗口透明度...原创 2018-09-07 11:13:31 · 1151 阅读 · 0 评论 -
QT加载gif等动态图
软件启动过程中、页面加载以及一些特效展示中我们经常会用到一些动态图的方式提交软件交互体验,下边介绍项目中如何实现。这里我们采用QMovie的方式:#include "DynamicWidget.h"#include "ui_DynamicWidget.h"DynamicWidget::DynamicWidget(QWidget *parent) : QWidget(parent...原创 2018-09-07 10:13:32 · 2079 阅读 · 0 评论 -
QT的QCryptographicHash 文件加密
QCryptographicHash类提供了生成密码散列的方法。该类可以用于生成二进制或文本数据的加密散列值。目前支持MD4、MD5、SHA-1、SHA-224等。枚举QCryptographicHash::Algorithm:常量 取值 描述 QCryptographicHash::Md4 0 生成一个MD4散列 QCryptographicHash::M...原创 2018-09-11 14:10:29 · 2576 阅读 · 0 评论 -
QSettings用法介绍
简介QSettings类提供了持久的跨平台应用程序设置。用户通常期望应用程序记住它的设置(窗口大小、位置等)所有会话。这些信息通常存储在Windows系统注册表,OS X和iOS的属性列表文件中。在Unix系统中,在缺乏标准的情况下,许多应用程序(包括KDE应用程序)使用INI文本文件。QSettings围绕这些抽象技术,使我们能够以便携的方式保存和恢复应用程序设置。它还支持自定义存储...转载 2018-09-06 14:31:56 · 904 阅读 · 0 评论 -
curl+证书访问https QSslCertificate
SSL 服务器与客户端之间的通信有单向和双向 SSL 认证。单向 SSL 认证一般是客户端利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。双向 SSL 认证则除了需要对服务器的合法性进行认证,还需要按照单向 SSL 认...原创 2018-09-12 09:23:40 · 1087 阅读 · 0 评论 -
QT获取本机ip
QString localIp(){ QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName()); // 找出一个IPv4地址即返回 foreach(QHostAddress address,info.addresses()) { if(address.protocol() =...原创 2018-09-12 09:25:19 · 158 阅读 · 0 评论 -
获取操作系统当前时间
获取当前时间:QDateTime::currentDateTime().toMSecsSinceEpoch()原创 2018-09-12 09:26:07 · 344 阅读 · 0 评论 -
QT获取操作系统版本
static QString GetSysVersion(){ DWORD dwVersion = 0; WKSTA_INFO_100 *wkstaInfo = NULL; NET_API_STATUS netStatus = NetWkstaGetInfo(NULL, 100, (BYTE **)&wkstaInfo); if (netStatus =...原创 2018-09-12 09:29:20 · 2231 阅读 · 1 评论 -
QT获取CPU型号
QString getCpu(){ static QString model = "";#ifdef Q_OS_WIN if (model.isEmpty()) { std::array<int, 4> cpui; std::vector<std::array<int, 4>> extdata; ...原创 2018-09-12 09:30:36 · 1282 阅读 · 1 评论 -
QT获取cpu使用率
double getCpuUsage(){#ifdef Q_OS_WIN static FILETIME s_preIdleTime = { 0, 0 }; static FILETIME s_preKernelTime = { 0, 0 }; static FILETIME s_preUserTime = { 0, 0 }; static bool isFi...原创 2018-09-12 09:31:39 · 5325 阅读 · 2 评论 -
QImage, QPainter复合模式绘图 图片叠加模式 setCompositionMode
Qt的QPainter::CompositionMode提供了多种图像叠加的模式。常见的有QPainter::CompositionMode_SourceOver, QPainter::CompositionMode_SourceAtop,QPainter::CompositionMode_DestinationOver和QPainter::CompositionMode_Destination...原创 2018-09-12 09:33:32 · 6817 阅读 · 0 评论 -
QT之QAxWidget插件使用详解
官方的说明:QAxWidget类是一个包装ActiveX控件的QWidget。QAxWidget可以实例化为空对象,它应该包含ActiveX控件的名称,或者使用指向ActiveX控件的现有接口指针。仅使用QAxBase支持的数据类型的ActiveX控件的属性,方法和事件可用作Qt属性,插槽和信号。基类QAxBase提供了一个API,可以通过IUnknown指针直接访问ActiveX。QAxW...原创 2018-09-12 09:35:20 · 29329 阅读 · 5 评论 -
QT拷贝目录下的所有文件到另一个目录中
bool copyDir(const QDir& from, const QDir& to, bool cover){ if (!to.exists()) { if (!to.mkdir(to.absolutePath())) return false; } QFileInfoList fileInfoL...原创 2018-09-12 09:38:37 · 5565 阅读 · 1 评论 -
IPC(进程间通信)之QLocalServer和QLocalSocket实现进程间通信 包含接口说明
QLocalServer继承自QObject。QLocalServer提供了一个基于本地套接字(socket)的服务端(server)。QLocalServer可以接受来自本地socket的连接。server通过调用listen(),监听特定的连接。newConnection()是在每次server与client连接上时所发出的信号。nextPendingConnection()将...原创 2018-09-13 14:49:56 · 999 阅读 · 0 评论 -
QTextEdit的使用,文字课实时逐字变色(语音测评结果变色可用)
光标逐个向后移动进行判断并控制不同字体显示:效果如下:具体实现: TextDocument *document = ui->textEdit->document(); QTextBlock &currentBlock = document->begin(); QTextBlock::iterator it; QTextCurso...原创 2018-09-10 10:01:23 · 403 阅读 · 0 评论 -
QTextEdit 总结
关于Qt的富文本处理, 可以参考文档: Rich Text Processing该文档有人翻译了一下(本来我想翻译- -!), 参考Rich Text Processing富文本处理 QTextEdit的组成比较复杂, 最好看看文档了解一下Rich Text Document Structure1. HTML形式操纵Qtextedit QTextEdit支持HTML的一个子集, ...转载 2018-09-10 10:02:09 · 633 阅读 · 0 评论 -
QSS表单样式总结
QT样式表单 QT的样式表单允许我们在对程序不做任何代码上的更改的情况下轻松改变应用程序的外观。其思想来源于网页设计中的CSS,即可以将功能设计和美学设计分开。 它的语法和概念和HTML CSS也是差不多的。 其原理可简单理解为:QT内部存在一个CSS语法解析器,我们将我们的样式控制以CSS语法定义到外部文件,CSS语法解析器解析后在调用相应的功能模块以完成样式变化。(...转载 2018-09-10 11:21:44 · 529 阅读 · 0 评论 -
QT:用QWebSocket实现webchannel,实现C++与HTML通信
基本原理是通过channel将C++对象暴露给HTML,在HTML中调用qwebchannel.js。前提是建立transport,QT只提供了一个抽象基类QWebChannelAbstractTransport,需要自己进行实现,官方建议用QWebSocket实现,并给出了实例。1、实现Transport类,内置一个WebSocket套接字;2、实现新的channel类,内置一个WebS...转载 2019-02-18 15:43:58 · 2010 阅读 · 1 评论