自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (2)
  • 收藏
  • 关注

原创 STL的六大组件

STL(Standard Template Library,标准模板库)是C++的一个重要部分,它提供了许多容器、迭代器、算法等模板类,用于实现数据结构和算法。这六大组件共同构成了STL的核心框架,使得C++程序员能够更高效地编写出可重用、可扩展和可维护的代码。

2024-05-22 18:32:10 329

原创 std::map key是对象时需要重载小于号运算符

/ 声明一个 std::map,其 key 和 value 都是 MyClass 对象。// 重载 < 运算符以便 std::map 可以比较 MyClass 对象。// 这里假设 key 和 value 的 id 相同,仅作为示例。// 可以添加其他成员函数和运算符重载。// 遍历 map 并打印内容。// 插入 100 个对象。

2024-05-21 13:43:39 82

原创 什么是系统编程(System Programming)?

系统编程(System Programming)通常指的是编写与操作系统、设备驱动程序、系统工具、网络协议栈、文件系统等底层系统组件交互的程序。这类编程通常需要深入理解计算机体系结构、操作系统内部机制、硬件与软件的交互等。学习系统编程通常需要一定的计算机科学基础,包括数据结构与算法、计算机组成原理、操作系统原理等。此外,掌握一门或多门编程语言(如C、C++、Rust等)也是非常重要的。

2024-05-20 08:53:46 399

原创 为啥不能碰爱情?

需要注意的是,“不能碰爱情”并不意味着一个人永远不能或不应该谈恋爱。每个人的情况都是独特的,而且人的想法和情感也会随着时间和经历的变化而改变。如果一个人觉得自己准备好重新开始一段感情,那么他们完全有权利去追求自己的幸福。“不能碰爱情”可能源于多种原因,这些原因可能因个人经历、信念或生活情境而异。

2024-05-18 19:24:29 175

原创 Windows句柄(Handle)

在Windows操作系统中,句柄(Handle)是一个特殊的标识符,用于表示和操作各种系统资源,如文件、窗口、进程、线程、事件等。Windows句柄是一个整数值,通常由系统API函数在创建或打开一个资源时返回,并用于后续的操作。正确使用句柄是Windows编程中的重要一环,因为不正确地管理句柄可能会导致资源泄漏、安全问题或程序崩溃。:句柄隐藏了资源或对象的内部表示,使得开发者可以通过句柄来操作资源,而无需关心资源在内存中的具体位置或结构。只有拥有适当权限的进程才能通过句柄访问特定的资源。

2024-05-18 19:02:49 276

原创 UML(Unified Modeling Language)统一建模语言

它提供了一套丰富的图形化符号来描述系统的静态结构和动态行为,帮助开发人员、业务分析师和其他项目干系人更好地理解和交流系统的需求、设计和实现。UML的这些图通常不是单独使用的,而是根据项目的需要选择性地使用其中的几种或多种,以便全面地描述系统。此外,UML还支持对模型的层次结构进行描述,例如通过包(Package)将相关的元素组合在一起,或者通过子系统(Subsystem)来表示大型系统中的一部分。

2024-05-17 16:18:14 225

原创 std::function

是 C++ 标准库中的一个模板类,它提供了一种通用、多态的函数封装。你可以将任何可调用对象(如函数、lambda 表达式、函数对象等)赋值给。的主要优点是它允许你以一种类型安全的方式存储、复制和调用任何可调用对象,这使得回调和事件驱动编程变得更加容易。你可以将任何满足这个签名的可调用对象赋值给。也可以用于更复杂的签名,包括带有参数和返回值的函数。是一个模板实例,它表示一个不接受任何参数并返回。对象,然后像调用普通函数一样调用它。类型的变量,并通过这个变量来调用它。可以存储一个接受两个。的函数或可调用对象。

2024-05-17 14:56:12 178

原创 qt 动态布局的实现 方式

请注意,实现动态布局时需要考虑性能、内存管理和用户体验等因素。避免在界面更新时执行过多的计算或创建过多的控件,以确保应用程序的响应性和稳定性。动态布局指的是在运行时根据条件或用户交互动态地添加、删除或修改界面上的控件和它们的布局。在 Qt 中,实现动态布局通常涉及到对布局管理器(如。

2024-05-17 13:01:09 180

原创 qt事件过滤器

在 Qt 框架中,事件过滤器(Event Filter)是一种机制,允许一个对象(称为“过滤器对象”)拦截并处理发送到另一个对象(称为“被过滤对象”)的事件。事件过滤器对于处理跨多个对象或窗口的复杂事件逻辑特别有用。这个函数接收两个参数:一个指向被过滤事件的 QObject 的指针和一个 QEvent 对象。:接下来,你需要将过滤器对象安装到你想过滤其事件的 QObject 上。:首先,你需要一个 QObject 派生类的对象来作为事件过滤器。函数中,你可以检查事件类型并根据需要处理它们。

2024-05-17 12:52:10 226

原创 离屏渲染技术

这个过程首先会创建一个当前屏幕缓冲区以外的新缓存区,屏幕渲染会有一个上下文环境,离屏渲染的过程就是切换上下文环境,从当前屏幕切换到离屏,等结束以后又将上下文切换回来。此外,离屏缓存区本身就需要额外的空间,大量的离屏渲染可能造成内存过大的压力。离屏渲染产生的原因主要有两种:一是系统触发,当图层经过着色管道后产生的结果需要与另一个图层经过管道得到的结果再次进行计算、混合后产生特殊效果才能渲染到屏幕上时,GPU就需要额外开辟一个缓冲区保存这两次中间结果,这个缓冲区就称为离屏缓冲区;

2024-05-17 12:48:21 97

原创 C++ 中的右值引用(rvalue reference)主要解决了两个问题:

为了避免不必要的拷贝,程序员经常需要编写额外的代码来管理这些资源,如使用智能指针(std::auto_ptr,但在 C++11 中被废弃,取而代之的是 std::unique_ptr 和 std::shared_ptr)或手动管理资源。右值引用和 std::forward 函数的引入,允许我们编写一个通用的转发函数,该函数可以完美地将参数(无论是左值还是右值)转发给另一个函数,而不需要担心参数的值类别(lvalue 或 rvalue)。实现移动语义,以提高性能并减少不必要的资源复制。

2024-05-16 19:08:23 413

原创 c++单例模式

然而,直接使用模板来实现单例模式可能并不是最直接或最常见的方法,因为单例模式通常是为特定的类设计的。但是,你可以通过模板参数化单例模式来创建一个通用的单例类模板,这样你就可以为任何类创建单例了。在C++中,单例模式是一种创建对象的设计模式,该模式限制了一个类只能有一个实例,并提供了一个全局访问点来获取该实例。当你想确保一个类只有一个实例,并且提供一个全局访问点时,这种模式就很有用。但是,在多线程环境中,更常见的做法是使用更高效的线程安全实现,如饿汉式(在类定义时即创建实例)或使用C++11的。

2024-05-16 16:20:26 412

原创 Qt 的元对象系统

Qt 的元对象系统(Meta-Object System)是 Qt 框架中的一个核心组件,它提供了 Qt 对象之间的通信机制,特别是信号和槽(Signals and Slots)机制、属性(Properties)、反射(Reflection)和对象间通信的其他功能。QObject和。

2024-05-16 16:05:01 360

原创 C++中的泛型编程

C++中的泛型编程(Generic Programming)是一种编程范式,它允许程序员编写与类型无关的代码,这些代码可以在多种不同的数据类型上重用。泛型编程的主要目标是减少代码的重复,提高代码的可重用性和灵活性。C++提供了两种主要的泛型编程工具:模板(Templates)和STL(Standard Template Library,标准模板库)。

2024-05-16 16:02:25 282

原创 C++中的多态(Polymorphism)

C++中的多态(Polymorphism)是面向对象编程的三大特性之一,它允许使用父类类型的指针或引用来指向子类对象,并通过该指针或引用来调用子类中覆盖或重载的方法,从而实现一种通用的、可重用的程序设计。

2024-05-16 15:58:33 403

原创 Qt框架的核心思想

综上所述,Qt框架的核心思想主要体现在跨平台性、面向对象和模块化、信号和槽机制、模型/视图架构以及多线程技术等方面。这些思想使得Qt框架成为了一个功能强大、易于使用且高度可定制的软件开发框架。

2024-05-16 15:55:47 364

原创 现代C++编程思想

现代C++编程思想涵盖了多个方面,这些思想帮助开发者更有效地利用C++的特性和工具集,以编写出更高效、更安全、更易维护的代码。这些现代C++编程思想可以帮助开发者编写出更高效、更安全、更易维护的代码,并充分利用C++的强大功能。

2024-05-16 15:43:03 294

原创 1111111111

11111111111啊啊啊啊啊啊啊啊。

2024-05-12 20:04:54 378

原创 监听窗口状态变化

void EeoCustomNormalDialog::changeEvent(QEvent *event){ if (QEvent::WindowStateChange == event->type()) { QWindowStateChangeEvent *stateEvent = dynamic_cast<QWindowStateChangeEvent *>(event); if (stateEvent) { Qt::WindowSta

2023-05-25 17:16:35 923

原创 事件派发代码

【代码】事件派发代码。

2021-03-12 18:41:56 621

原创 关于QWidget上的子控件假死问题的解决方案

关于QWidget上的子控件假死问题的解决方案重写bool LeXueClient::event(QEvent* event)拦截 QEvent::WindowStateChange 事件获取窗口列表然后设置窗口属性 foreach(QWidget *widget, QApplication::allWidgets()) { WholeBodyScreenWidget * w = dynamic_cast <WholeBo...

2020-12-16 21:20:37 308

原创 qt 解析命令

for (int i = 1; i < args.size(); ++i) { const QByteArray arg = args.at(i).toUtf8(); if (arg.startsWith('-')) { if ("-volume" == arg) { if (i + 1 < args.count()) {...

2020-07-02 15:04:05 386

原创 程序员们平时都喜欢逛什么论坛呢?

程序员们平时都喜欢逛什么论坛呢?看到有人问程序员都喜欢逛哪些论坛,那我就来总结一下。0. GitHub — 开发者最最最重要的网站:https://github.com这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子,上去搜就好了。并且呢,上面有很多优秀的程序员,你可以在这里交到很多好朋友喔。1. Stack Overflow — 解决 bug 的社区:https://stackoverflow.com/开发过程中遇到什么 bug,上去搜一下,只要搜索的方式对,百分之 .

2020-05-25 17:36:58 208

原创 qt渐变的实现方法

qt渐变的实现方法 QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1)); gradient.setColorAt(0.0, 0x3cc63c); gradient.setColorAt(1.0, 0x26f626); gradient.setCoordinateMode(QGradient::Obj...

2020-04-13 17:30:18 263

原创 QComboBox 样式表

QComboBox{padding-left:12px;border:1px solid #E0E4E5;color:#131313;font-family:微软雅黑;font-size:18px;line-height:14px;}QComboBox QAbstractItemView::item{height:30px;color:#131313;font-family:微软雅黑;font...

2020-03-30 15:43:57 456

原创 qt QWebEngineView 和 quick 渲染的问题的解决

qt 5.0 以上版本使用OpenGL渲染,但是部分老机器,老显卡,支持的OpenGL版本太低,甚至不支持OpenGL,有些显卡驱动不支持d3d,为了发布一款兼容所有机器的程序安装包,目前没有找到办法,只能通过不同的安装包解决此问题。1、支持OpenGL机器渲染。设置属性: QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContex...

2020-03-23 15:46:53 4044 1

原创 关于QWebEngineView在老显卡的显示和闪屏问题的解决方案

1、支持老老显卡的设置属性 QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); //QCoreApplication::setAttribute(Qt::AA_UseOpenGLES); QGuiApplication::setAttribute(Qt::AA_UseSoftwareOpenGL); QCoreA...

2020-03-01 17:24:01 3371 4

原创 innosetup 打包 安装之前 卸载旧版本和删除旧文件

[Code]function InitializeSetup(): boolean; var ResultStr: String; ResultCode: Integer; begin if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9807F4...

2020-02-22 15:43:29 2300

原创 qt禁止硬件渲染

qt解决闪屏的问题 QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

2020-02-22 15:42:00 2820 3

原创 qt文字太长显示方案

qt文字太长显示方案 QString nickName = qApp->property("nickName").toString(); QFontMetrics fontMetrics(this->label_2->font()); int width = fontMetrics.width(nickName); if (width > this->l...

2020-02-11 14:37:30 1198

原创 qml阴影的实现

qml代码阴影的实现注意:隐隐外层必须是Rectangle组件。import QtQuick 2.5import QtQuick.Window 2.2import QtQuick 2.4import QtQuick.Controls 1.3import QtQuick.Window 2.0import QtQuick.Controls 1.4import QtQuick...

2020-01-19 14:01:09 2836

原创 qt子控件焦点的切换

设置焦点的顺序[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)Puts the second widget after the first widget in the focus order.It effectively removes the second widget from its foc...

2020-01-08 12:15:26 641

原创 QWidget 半透明窗口解决方案

设置属性 this->setAttribute(Qt::WA_TranslucentBackground, true);重写绘制函数void ThreeSplitScreenPlaybackHoverToolBarWidget::paintEvent(QPaintEvent*event){ QPainter p(this); p.setPen(QColor(0, ...

2020-01-03 20:43:02 1015

原创 Windows关闭屏幕保护睡眠的相关函数

关闭屏幕保护 bool active = false; SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, false, &active, 0x0002); //阻止屏幕保护程序的运行关闭待机状态 SetThreadExecutionState(0x00000001 | 0x00000002 | 0x80000000); //防止系...

2019-12-30 11:29:28 382

原创 qt 模拟表单提交数据

QByteArray HttpUtil::login(const QString url /*= QString()*/, const QString & mobile /*= QString()*/, const QString & password /*= QString()*/){ qDebug() << QStringLiteral("正在登录...");...

2019-12-06 17:27:26 801

原创 qt互斥锁的使用

qt互斥锁的使用class CallbackStorage{public: int insertCallback(const QJSValue &callback) { QMutexLocker locker(&m_mtx); const int nextId = qMax(++m_counter, 0); ...

2019-12-01 18:15:54 1037

原创 qt生成圆形头像

废话不说,直接贴代码QPixmap HeadPortraitUtil::pixmapToRound(const QPixmap &srcPixmap, int radius){ if (srcPixmap.isNull()) { return QPixmap(); } QSize size(2 * radius, 2 * radius); QBitmap mask...

2019-07-03 17:08:49 409

原创 qt中C++和js交互

1、C++调用js代码直接调用js中方法, m_webView->page()->runJavaScript("NextSlide()", QWebEngineScript::MainWorld, [](const QVariant &var) {qDebug() << var.toString();});[](const QVaria...

2019-02-14 16:07:43 1861 1

原创 qt C++调用js方法

qt中C++调用js方法  QWebEnginePage * page = view-&gt;page(); if (page) { page-&gt;runJavaScript("LastSlide()", QWebEngineScript::MainWorld, [](const QVariant &amp;var) ...

2019-02-13 16:46:53 1277

原创 QDialog模态对话框与非模态对话框

模态一MyWidget*w = new MyWidget; //派生于QWidget w->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint); w->setAttribute(Qt::WA_ShowModal, true); w->setAttr...

2019-01-21 18:27:42 183

软件开发工程简历社招简历

软件开发工程简历社招简历

2022-01-27

用qt实现的水印工具(QT&& C++)

水印的英文叫“watermark”,是欧洲人发明的,有700年的历史了。水印是在造纸过程中通过改变纸浆的密度而形成的,水印分为2种,让纸变厚而形成的水印叫“黑水印”,让纸变薄而形成的水印叫“白水印”,迎光透视时可以清晰看到有明暗纹理的图形、人像或文字。通常纸币、证件、证券、粮票等等,都采用此方式,以防止造假。

2019-04-22

空空如也

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

TA关注的人

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