
Qt
文章平均质量分 73
Qt
Lizhifun
From Zero To Hero
展开
-
Qt知识点梳理 —— 实现汉字转拼音全拼简拼及首字母
需求功能输入一句汉语,转换成拼音全拼、简拼、每个字首字母及整句话首字母;封装成单独的类,供后续使用方便;运行效果系统实现汉语转拼音://汉语转拼音QString CNLHelper::CNToPY(const QString &cnstr){ QStringList list; for (int i = 0; i < cnstr.length(); ++i) { int unicode = QString::number(cns原创 2021-01-31 18:12:43 · 3104 阅读 · 2 评论 -
Qt知识点梳理 —— 串口通信实现
简介Qt中使用 QSerialPort 和QSerialPortInfo来实现串口通信相关功能;界面设计代码实现首先需要在项目.pro文件中添加串口配置:QT += serialport使用QSerialPortInfo 查询电脑中所有可用串口//查找所有可用串口foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){ ui->tb_PName->a...原创 2021-01-31 18:12:58 · 1562 阅读 · 0 评论 -
Qt知识点梳理 —— 记录程序运行日志并分类保存
需求功能0、记录程序关键位置运行日志;1、按照日期单独存放;2、将日志按照级别不同分类保存;3、日志格式需要固定;代码实现使用函数QtMessageHandler qInstallMessageHandler(QtMessageHandler);来实现,是全局的;参考说明文档首先定义并实现函数MessWriteLog :void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QSt.原创 2021-01-29 23:10:03 · 2217 阅读 · 0 评论 -
Qt知识点梳理 —— 无边框图片背景窗体实现
文章目录实现效果创建项目项目源码开发环境实现效果创建项目首先创建项目,选择QMainWindow或者QWidget都可以;窗体中加入Layout,选择Vertical Layout或者Horizontal Layout都可以,然后添加Widget控件在其中;在MainWindow.h中加入eventFilter事件:protected: bool eventFilter(QObject *watched, QEvent *evt)..原创 2021-01-29 23:10:23 · 618 阅读 · 0 评论 -
Qt知识点梳理 —— 获取设备CPU、内存、磁盘等硬件信息
文章目录简介WMIC指令具体实现获取电脑名称获取CPU信息获取CPU序列号获取内存信息获取第一个磁盘序列号获取磁盘信息获取操作系统信息获取主板序列号获取网卡MAC地址获取设备联网状态运行效果项目源码开发环境简介工业应用领域,我们经常需要获取设备的硬件及软件信息,用以做设备软硬件判断,在此将常用的方法汇总,以便后续直接调用; 源码中已将方法封装为标准类,欢迎补充;其中包括:电脑名称、CPU信息、CPU序列号、内存详细信息、磁盘序列号、原创 2021-01-27 23:01:22 · 5936 阅读 · 1 评论 -
Qt知识点梳理 —— 代码实现菜单栏工具栏
添加图标资源项目中添加新文件,选择QT—资源文件—输入名称“imgs”,其他选项默认添加到项目中;在imgs.qrc中,点击“Add Prefix”添加前缀,修改前缀名称后,点击“Add Files”添加图像;图像资源成功导入;...原创 2021-01-22 22:04:23 · 1555 阅读 · 0 评论 -
Qt知识点梳理 —— 国际化 QtLinguist 应用(2)
文章目录QSettings使用多语言设置运行效果项目源码开发环境在国际化 QtLinguist 应用(1) 中,已经生成了源语言和目的语言文件,这章来讲如何在程序中应用;QSettings使用通过QSettings将用户选择的语言信息存储到 ini 文件中,在系统启动时判断要使用的语言;将参数写入INI文件:void MainWindow::writeIniFile(QString content){ QSettings *settings = new .原创 2021-01-21 22:08:46 · 321 阅读 · 0 评论 -
Qt知识点梳理 —— 国际化 QtLinguist 应用(1)
文章目录新建项目绘制界面创建翻译文件翻译文件新建项目新建项目的时候,在Translation这一步需要选语言,本例以中英文为例,此处选择Chinese;此时项目创建完成后,程序目录下会多出一个语言文件 QtLinguist_zh_CN.ts :里面只有头文件,没有内容,如下:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS version="2.1" language=原创 2021-01-20 22:33:48 · 629 阅读 · 0 评论 -
Qt知识点梳理 —— XML文件操作
XML文档介绍XML(Extensible Markup Language),可扩展标记语言;是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。(维基百科)XML文档结构<?xml version="1.0" encoding="UTF-8"?><param> <name>light val</name> <value>25</value><原创 2021-01-19 22:32:12 · 2693 阅读 · 1 评论 -
Qt知识点梳理 —— TCP通信实现
系统结构分别建立服务端与客户端,系统运行后启动服务端,并建立起一个客户端,如图:执行效果项目源码若要使用Qt套接字,需要在项目.pro文件(本例为:012_TCP.pro)中加入QT += network客户端ClientWidget.h#ifndef CLIENTWIDGET_H#define CLIENTWIDGET_H#include <QWidget>#include <QTcpSocket>//通信套接字#incl...原创 2021-01-18 23:00:07 · 403 阅读 · 0 评论 -
Qt知识点梳理 —— 自定义数据结构序列化与反序列化
定义序列化:将对象或数据结构转换为二进制序列反序列化:二进制序列转换为对象或数据结构使对象或数据结构更方便地在网络上传输或者保存在本地文件中。本文展示通过序列化将自定义数据结构序列化到硬盘文件中,再从文件反序列出来还原数据信息。Qt中序列化与反序列化Qt中使用QDataStream类实现对象序列化;序列化:QFile file("file.rx"); //定义文件路径file.open(QIODevice::WriteOnly); //以只写模式打开Q原创 2021-01-18 22:43:35 · 4146 阅读 · 0 评论 -
Qt知识点梳理 —— 静态函数发送信号
应用场景在编写相机程序时,使用了相机的回调函数,此回调函数为静态成员函数,在需要发送的信号时发现静态成员函数直接发送信号会有问题;非静态成员函数的非法调用。如下图:思路原理新建一个类,静态函数发送信号,用新建的类接收,然后再将这个信号发送出去。项目案例特意写了案例,ToolA类中静态函数发送信号,由MainWindow接收,如下:ToolA.h#ifndef TOOLA_H#define TOOLA_H#include <QObject>class原创 2021-01-14 20:19:53 · 7086 阅读 · 8 评论 -
Qt知识点梳理 —— NameSpace命名空间
命名空间作用:命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突;如解决问题:【异常】间接寻址级别不同C++中,命名空间使用namespace来声明,并使用{ }来界定命名空间的作用域,例如:namespace func{ int age=18;}标准命名空间:C++中标准命名空间std,std 是 standard 的缩写,意思是“标准命名空间”;C++标准库中的函数或者对象都是在命名空间std中定义的;Qt中有自带namespace原创 2021-01-13 19:52:46 · 10394 阅读 · 3 评论 -
《Qt》Qt mouseMoveEvent判断左键按下
需求:判断鼠标按下移动;代码:void PicQWin::mouseMoveEvent(QMouseEvent *event){ qDebug() << "PicQWin::mouseButton " << event->button(); if(event->button() == Qt::LeftButton) { QPoint point = event->pos(); emit mous原创 2020-09-01 20:21:33 · 6208 阅读 · 3 评论 -
Qt+OpenCV:: Qt显示OpenCV读取的图像
背景1、使用Qt打开文件对话窗口选择文件;2、使用OpenCV读取图像;3、将OpenCV读取的图像(Mat)转为Qt对象(QImage),显示到Qt窗口中;引用头文件及命名空间#include <QFileDialog>#include <QMessageBox>#include <QWheelEvent>#include <opencv2/opencv.hpp>using namespace cv;Qt打开文件对话框原创 2020-07-21 21:45:39 · 3467 阅读 · 1 评论 -
Qt+OpenCV:: QTCreator+OpenCV配置项目
使用Qt+OpenCV配置视觉项目,前提OpenCV、Qt都安装成功,这里只说配置案例;CVTest.pro配置:#Opencv FilePathINCLUDEPATH += D:\ProgramFiles(x86)\opencv-4.3.0\opencv\build\include\CONFIG(debug, debug|release){LIBS += D:/ProgramFiles(x86)/opencv-4.3.0/opencv/build/x64/vc15/lib/*430d.原创 2020-07-21 20:07:05 · 1184 阅读 · 0 评论 -
Qt TCP实现
Qt实现标准TCP/IP协议客户端程序(clientwidget.cpp):#include "clientwidget.h"#include "ui_clientwidget.h"ClientWidget::ClientWidget(QWidget *parent) : QWidget(parent), ui(new Ui::ClientWidget){ ui->setupUi(this); tcpSocket = NULL; //分配空原创 2020-07-20 20:48:13 · 353 阅读 · 0 评论 -
Qt 带参数的信号
项目名称:demo1.pro头文件:父窗体mainwidget.h、subwidget.h源文件:main.cpp、mainwidget.cpp、subwidget.cpp信号传递方向:运行结果:mainwidget.h:#ifndef MAINWIDGET_H#define MAINWIDGET_H#include <QWidget>#include <QPushButton>#include "subwidget.h"..原创 2020-07-06 20:12:38 · 2555 阅读 · 0 评论 -
Qt 两个窗口相互切换
项目名称:demo1.pro头文件:父窗体mainwidget.h、subwidget.h源文件:main.cpp、mainwidget.cpp、subwidget.cpp信号传递方向:mainwidget.h:#ifndef MAINWIDGET_H#define MAINWIDGET_H#include <QWidget>#include <QPushButton>#include "subwidget.h"class MainWidget原创 2020-07-06 14:59:57 · 1368 阅读 · 0 评论