自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (7)
  • 收藏
  • 关注

原创 Qt QComboBox 居中下拉框,包括文字居中,下拉列表居中

详细代码如下://下拉框风格初始化void comboBoxInit(QComboBox*box,int widthScroll,int height,bool bClolor){ box->setStyle(QStyleFactory::create("windowsvista")); QLineEdit*lineEdit = box->lineEdit(); if(lineEdit == 0) { lineEdit = new QL.

2020-10-29 12:50:34 6079 1

原创 Qt的多线程类

QThread是 Qt 提供的基本的多线程类,它允许创建自定义的线程。可以继承QThread类,并重写其run()方法,在run()方法中编写线程要执行的代码。public:// 执行线程任务// 启动线程// 等待线程执行完毕return 0;在这个示例中,我们创建了一个名为MyThread的自定义线程类,重写了run()方法,在其中编写线程要执行的任务。然后在main()函数中创建了一个MyThread对象,并通过调用start()方法启动线程。

2024-03-13 22:46:38 938 1

原创 QGraphicse有大量Item要如何管理提高性能

如果Item的计算或更新操作耗时较长,可以考虑将其放入单独的线程中进行处理,以避免阻塞主线程。可以利用 Qt 的线程机制或异步任务处理来实现。可以使用 QGraphicsView 的 setSceneRect() 方法限制场景的绘制区域,以便只绘制可见的Item。对于静态或不经常变化的图形项,考虑绘制为图片(QPixmap、QImage 等对象)后进行缓存,下次显示时显示为图片。将多个相邻的 Item 组合成一个 QGraphicsItemGroup,降低绘图和事件处理的开销。

2024-03-05 16:40:15 389

原创 单例模式的模板

这种实现方式提供了一种简洁而且易于使用的单例模式实现方式。参考了网上的一些单例模式,自己也写一个模板。

2024-01-09 11:46:42 675

原创 什么是C++的多态性?

c++的多态性

2023-10-10 23:13:56 80

原创 C++检测文件夹是否存在,如果不存在就创建

【代码】C++检测文件夹是否存在,如果不存在就创建。

2023-07-04 10:32:16 871

原创 OpenCV 如果是单通道图片,根据对应类型实现单通道转3通道

【代码】OpenCV 获取图像的通道数,实现单通道转3通道。

2023-06-15 09:42:15 761

原创 【无标题】C++获取编译日期+时间

1、__ DATE __ : 在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕2、__ TIME __ : 在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕所用想要获取某个文件的编译日期时,在该文件中,调用下面语句,即可获得编译日期+时间。实现方法是使用C语言预定义宏。

2023-06-09 09:28:55 435

原创 C++11中新特性之:initializer_list

2023-04-11 16:51:06 72

原创 QObject对象生命周期管理

1.2 从C++11开始,智能指针(shared_ptr、weak_ptr、unique_ptr)的正确使用可以在一定程度上缓解这类问题,但也会引入其他一些问题(例如,智能指针自身的线程安全性等),比起带垃圾回收的编程语言,C++程序员在写代码时心中还是要始终绷紧这根弦。后者通常是线程安全的。在使用QT布局器时,布局内的子对象析构时会去解绑父对象,如果这时父对象不存在,子对象解绑时会Crash。在QT代码中,我们常常会看到代码明明有很多new出来的对象,但却很少看到delete对象的语句。

2023-04-11 16:17:34 704

原创 C++ 多态 学习

复习C++多态,做了一些整理

2023-03-08 13:17:51 71

原创 QT 事件机制 学习

Qt 事件机制的学习记录

2023-03-03 15:56:53 110 1

原创 QT 元对象系统 学习

Qt 元对象系统的学习记录

2023-03-03 14:05:46 72

原创 QT获取exe 编译的日期时间,每次运行都更新编译时间

获取Qt 生成exe时,编译的时间,可以用于判断版本

2022-09-14 10:41:11 1111

原创 QString的两个字符串相加

QString 的数一旦,长度太长,转成toDouble, toLongLong,都不够用时,用字符串相加

2022-07-21 15:57:17 1189

原创 Qt 修改pro文件可以将生成exe或dll文件复制到多个地方

Qt 生成的exe 复制到多个文件夹Qt 生成的dll 复制到多个文件夹Qt 生成的lib 复制到多个文件夹

2022-06-15 16:23:12 1311 1

原创 QT windows防锁屏实现

利用键盘上不使用的SCROLL健,连续按2次,第一次灯亮,第二次灯灭头文件中 int keyType = 0; //防锁屏按健类型 QTimer *keyTimer; //防锁屏,按键定时器实现绑定信号好槽 keyTimer = new QTimer(this); connect(keyTimer,SIGNAL(timeout()),this,SLOT(slotKeyTimerOut())); keyTimer-

2022-03-08 13:59:45 663

原创 分层架构学习笔记

2021-12-21 15:17:31 224 1

原创 开机时,qt软件启动数据库服务

遇到一个问题,使用了MySql 数据库,开机时,有部分电脑不会自动启动 MySql 服务,只能去手动启动。现在通过代码的形式,主动去启动服务。//启动数据库服务void startMySqlServer(){ QString mySqlName = "mysql"; QStringList arguments; arguments << "start" << mySqlName; QProcess process; process.sta

2021-11-10 10:37:29 824

原创 QT moveToThread学习记录

帮助文档这些写的:void QObject::moveToThread(QThread *targetThread)Changes the thread affinity for this object and its children. The object cannot be moved if it has a parent. Event processing will continue in the targetThread.To move an object to the main thre

2021-09-23 14:30:13 239

原创 QT c++ 防止锁屏操作

QTimer *keyTimer; //防锁屏,按键定时器 int keyType = 0;代码实现 connect(keyTimer,SIGNAL(timeout()),this,SLOT(slotKeyTimerOut())); keyTimer->start(20000);``相当于每隔20秒,按下ScrollLock 键后松开,然后再按下松开,这个键一般用不到。按两次是因为,按一次灯会亮,再按一次灯会灭。中间间隔10毫秒,测试过如...

2021-09-18 16:58:25 715

原创 Qt 线程 学习笔记2

Qt 线程 一、重写run函数函数体运行不结束while,循环处理相关功能需求数据保护QMutex 互斥锁退出与析构函数运行结束注意点this 和run 不是一个线程,run函数中new时,不能使用另外一个线程的变量作为父指针this触发的槽,执行的线程不是run函数所在线程槽函数中和run函数中使用的变量,是跨线程使用,需要上锁二、QThread 指针new,然后start,moveToThread到子线程 事务处理1.QThread 指针子线程2.start启动线程,

2021-08-24 16:15:53 164

原创 QT 删除文件夹

删除文件夹需要注意的是,如果文件夹不是空的,就删除不掉。所以,思路就是:1.遍历文件夹,删除所有文件和子文件夹,文件直接删掉2.如果是子文件夹,就再次遍历调用,删除子文件夹中所有文件,然后再删除自己3.等待所有子文件夹都删除了,再删除掉文件夹//删除文件夹bool deleteDir(const QString &path){ if (path.isEmpty()) { return false; } QDir dir(path);

2021-08-20 15:40:48 4065 3

原创 QString 非数字的字符串补齐空格等

QString 非数字的字符串补齐空格等///-----------------------------------------------------------------------------/** *Brief : 补齐填充函数 *Function: slotAppectTask *Param : [in] QString str -- 需补齐字符串 * : [in] int maxLen -- 需对齐的长度 *

2021-07-07 11:04:36 2545

原创 QT QTableWidget 5种选择模式

table->setSelectionMode(QAbstractItemView::SingleSelection);共有5种选择: enum SelectionMode { NoSelection, SingleSelection, MultiSelection, ExtendedSelection, ContiguousSelection };QAbstractItemView::NoSe

2021-06-08 18:29:32 1698

原创 数据库对字段的操作

数据库对字段的操作1、增加字段ALTER TABLE DEPTADD COLUMN loc_id int(10) unsigned DEFAULT ‘0’ AFTER description;2、修改字段ALTER TABLE DEPTCHANGE id id int(11) NOT NULL AUTO_INCREMENT;3、删除字段ALTER TABLE DEPTderp column loc_id;4、调整字段顺序ALTER TABLE DEPTCHANGE id id int

2021-06-07 13:03:41 166

原创 qSetMessagePattern Qt输出控制例子

qSetMessagePattern("%{time hh:mm:ss.zzz}" "%{if-debug}[D]%{endif}" "%{if-warning}[W]%{endif}" "%{if-info}[I]%{endif}" "%{if-critical}[C]%{endif}" ...

2021-05-26 13:53:00 122

转载 Qt属性系统记录笔记

Q_PROPERTY(type name (READ getFunction [WRITE setFunction] | MEMBER meznberName [(READ getFunction | WRITE setFunction)]) [RESET resetFunction] [NOTIFY notifySignal] [REVISION int] [DESIGNABLE bool] [SCRIPTABLE bool] [STORED bool]

2021-05-26 11:13:36 113

原创 QTableWidget 常用接口封装一

//获取TableWidgetItemQTableWidgetItem* getTableWidgetItem(QTableWidget*table,int row ,int column,int alignment=Qt::AlignCenter){ QTableWidgetItem* pItem = table->item(row,column); //找到单元格 if(pItem == 0) { pItem = new QTableWidgetIt.

2021-05-19 18:13:29 358

原创 Qt 信号和槽连接的 connect 第五个参数

connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnection类型。Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数运行于信号发送

2021-05-13 10:18:46 803

原创 Qt 线程锁的一种释放方式

QMutex tasksMutex;void funtion(){ QMutexLocker locker(&tasksMutex); ....}这样使用,函数结束时,自动释放锁

2021-05-12 18:55:12 435

原创 如何使用qDebug打印包含换行符的QString

1. qDebug打印包含换行符的QStringQString output("我想\n换行");qDebug() << output;打印出来不换行"我想\n换行"2.加上noquote()QString output("test1\ntest2");qDebug().noquote() << output;打印出来换行:"我想换行"...

2021-04-21 12:37:33 4298

原创 Qt QDateEdit 日期样式设置例子

​​ //初始化日期控件 void initDateEditUI(QDateEdit*dateEdit,QWidget*parent) { dateEdit->setAlignment(Qt::AlignCenter); dateEdit->setCalendarPopup(true); dateEdit->setDisplayFormat("yyyy-MM-dd"); dateEdit->setDat

2021-03-31 13:41:52 4042

原创 QTabWidget 样式例子

QTabWidget::pane{ border: 2px solid rgb(210, 210, 210); background:rgb(246, 246, 246); border-top-color:transparent;}QTabWidget::tab-bar{ background:rgb(0, 0, 0); subcontrol-position:left;}QTabBar::tab{ width:173px; height:45px; background:r...

2021-03-23 14:51:54 3307

原创 QSlider 样式例子

QSlider样式设置例子

2021-03-23 14:46:51 873

原创 Qt sqlite 数据库操作封装

封装接口:1.生成数据库文件2.打开数据库3.关闭数据库4.执行Sql语句5.增删改查的实现及重载接口6.事务操作:taransction和commit直接贴代码sqliteDb.h#ifndef SQLITEDB_H#define SQLITEDB_H#include <QDir>#include <QDate>#include <QDateTime>#include <QFileInfo>#include <QStr

2021-03-05 16:04:22 3100 5

原创 QT获取文件夹及文件行数

#include "mainwindow.h"#include "ui_mainwindow.h"//获取TableWidgetItemQTableWidgetItem* getTableWidgetItem(QTableWidget*table,int row ,int column,int alignment){ QTableWidgetItem* pItem = table->item(row,column); //找到单元格 if(pItem == 0) .

2021-03-04 10:09:50 4816 1

原创 Qt 控件命名前缀(仅供参考)

Qt 控件命名前缀(仅供参考),根据自己的习惯,自行调整。QWidget: widgetQPushButton: btn QRadioButton: rbtnQToolButton: tbtnQLabel: lblQLineEdit: ldtQTextEdit: textQTextBrowser: textQStackedWidget: stackQTabWidget:...

2021-03-02 13:50:13 1157

原创 QT 获取QTextEidt 自动换行后的行数

//获取一个block 的折叠行数void getTextLineCount(QTextBlock& block, int& lineCount){ QTextLayout *lay = block.layout(); if(block.position() == 0) { lineCount += lay->lineCount(); return; } else { lineCoun.

2021-03-02 13:16:14 2247 2

原创 C/C++ 函数调用多次,但过程只实现一次

通过 static关键字静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。void fun(){ static bool first = false;//赋初值 if(first) { return true;//只执行一次 }//接下来实现自己想要实现的过程内容}......

2021-03-02 09:51:20 2223

Qt sqlite 数据库操作封装

封装接口: 1.生成数据库文件 2.打开数据库 3.关闭数据库 4.执行Sql语句 5.增删改查的实现及重载接口 6.事务操作:taransction和commit QT版本:QT5.14.2

2021-03-05

QT 创建sqlite数据库,执行增删改查.rar

这是QT写的,可以创建sqlite数据库,创建后,可以执行增加记录、删除记录、修改记录、查询记录,其他功能可以自己进行扩展

2020-11-23

Qt生成二维码图片.rar

这个二维码是直接使用源码,不附加第三方库,用Qt来实现的二维码,使用比较简单,都是C++和Qt代码。 讲任意字符串转成二维码。

2020-04-24

用Qt写的加密解密库AES加密

//从文件中读取出内容 QFile file&#40;"D:\\testMod\\Toolpath\\top-mark2-1.900"&#41;; if (!file.open(QFile::ReadOnly | QFile::Text)) return 0; QByteArray ba = file.readAll();//文件内容 file.close(); Encrypt*pEncrypt = Encrypt::getInstance(); //获取加密单例 QByteArray outEncryptBa; //加密后的 QByteArray outUncryptBa; //解密后的 pEncrypt->InitializePrivateKey(16, "abc"); //初始化密钥 pEncrypt->OnAesEncrypt(ba, outEncryptBa); //加密 pEncrypt->OnAesUncrypt(outEncryptBa, outUncryptBa);//解密

2020-04-11

Qt5 XML文件的解析,增删改查节点。

主要是Qt5 对XML文件的解析。 有解析,重点是增加,删除,查询,修改功能。 还是很简单的,希望对大家有帮助。

2019-09-29

Qt5 XML 解析

用Qt的QDomDocument解析XML,获取一个个节点出来,比较简单。 用Qt的QDomDocument解析XML,获取一个个节点出来,比较简单。 用Qt的QDomDocument解析XML,获取一个个节点出来,比较简单。

2015-04-28

Qt4 百度地图 定位

用Qt4,使用百度地图api写的,地图定位显示,单个点定位,多个点连线定位。主要是这些功能,更多的可以自己完善

2014-06-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除