自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 RTMP消息(chunk data)

​ 提供了底层的传输优化机制。​ 定义了应用数据的结构和语义,而 ​。

2025-04-25 00:41:31 217

原创 RTMP分块(chunk)

块大小128Byte-65536Byte大分块cpu负载降低,在低带宽环境传输会延迟;小分块延迟低,但cpu消耗大,不利于高码率传输。

2025-04-24 01:41:33 253

原创 RTMP握手流程(传输层)

使用TCP,当到达网络拥塞、宽带上限时,传输质量受到影响。不支持除H.264/AAC之外的标准。

2025-04-19 21:45:56 259

原创 vs2017开启性能探测器失败

Microsoft.DiagnosticsHub.Diagnostics.CollectionStartFailedHubException”的异常。最后发现是Visual Studio Standard Collector Service 150无法启动导致的。无法启用性能探测器服务没有及时响应启动或控制请求。(HRESULT: 0xe1110002)最后无奈,只能用virsual studio installer修复,2.开启各种诊断服务,漫长的测试。文件存在, 却启动失败。修复后,就可以进入诊断了。

2025-03-28 17:01:42 330

原创 SDL崩溃

详细加载微软雅黑字体库C:\Windows\Fonts\msyh.ttc时(开源库*STB*)初始化stbtt_InitFont失败,stbtt_fontinfo *info->index_map未初始化。初始化失败却仍然将微软雅黑字体库加入,所以当index_map等于0时不会崩溃,不为0时内存访问越界崩溃。原因是:TTF_OpenFont-stbtt_InitFont-stbtt_InitFont_internal初始化字体库失败,但是仍然加入进来。

2025-03-28 10:36:56 140

原创 Qt Concurrent Filter and Filter-Reduce

QtConcurrent::filter()、QtConcurrent::filtered() 和 QtConcurrent::filedReduced() 函数并行过滤序列中的项目,如。QtConcurrent::filter() 就地修改序列,QtConcurrent::filtered() 返回包含过滤内容的新序列,QtConcurrent::filteredReduced() 返回单一结果。这些函数是框架的一部分。上述每个函数都有一个阻塞变体,它返回最终结果而不是。使用它们的方法与异步变体相同。

2025-03-25 20:35:55 902

原创 Qt Concurrent 并发 Map 和 Map-Reduce

上述每个函数都有一个阻塞变体,它返回最终结果而不是。使用它们的方法与异步变体相同。请注意,上述结果类型不是对象,而是真正的结果类型(本例中为<QImage> 和 QImage)。

2025-03-25 20:19:20 1216

原创 QtConcurrent::run并发

在调用 QtConcurrent::run() 时,会复制每个参数,这些值会在线程开始执行函数时传递给线程。在重载函数的情况下,用户需要明确指定结果类型作为模板参数传递给 QtConcurrent::run(),例如。向函数传递参数的方法是将参数添加到 QtConcurrent::run() 调用中,紧跟在函数名称之后。,因此用户在此模式下调用 QtConcurrent::run() 时无需实例化它,也无需明确传递它。QtConcurrent::run() 函数在单独的线程中运行一个函数。

2025-03-25 19:41:09 999

原创 Qt 线程类

Qt 的线程类是用本地线程 API 实现的,如 Win32 和 pthreads。因此,它们可以与相同本地 API 的线程一起使用。QtFuture::WhenAnyResult 用于表示 QtFuture::whenAny() 的结果。存储 QFuture 可访问的计算结果的方法。简化锁定和解锁读写锁(用于写访问)的便利类。对指针进行独立于平台的原子运算的模板类。简化读取访问的读写锁锁定和解锁的便利类。在独立线程中运行任务的可配置方式。简化锁定和解锁互斥的便利类。与平台无关的线程管理方式。

2025-03-25 17:49:32 412

原创 Qt 线程和 QObjects

QThread 继承于 QObject。它发出信号来指示线程开始或结束执行,并提供一些插槽。更有趣的是,QObjects 可以在多个线程中使用,发出信号以调用其他线程中的插槽,并向 "生活 "在其他线程中的对象发布事件。之所以能做到这一点,是因为每个线程都可以拥有自己的事件循环。

2025-03-25 17:24:42 960

原创 Qt 重入和线程安全

在整个文档中,"重入"和 "线程安全 "这两个术语被用来标记类和函数,以表明它们在多线程应用程序中的使用方式:线程安全重入因此,线程安全的可重入的可重入的线程安全的推而广之,如果一个类的成员函数可以被多个线程安全调用,只要每个线程使用的是该类的不同,那么这个类就是可重入的。如果可以从多个线程安全地调用类的成员函数,即使所有线程都使用类的相同,该类也是线程安全的。只有当 Qt 类被多个线程使用时,才会被记录为线程安全。如果函数未标记为线程安全或可重入,则不应在不同线程中使用。

2025-03-24 20:27:40 1035

原创 Qt 隐式共享

共享类由指向共享数据块的指针组成,共享数据块包含引用计数和数据。每当有新对象引用共享数据时,引用计数就会递增,而当对象取消引用共享数据时,引用计数就会递减。当引用计数变为 0 时,共享数据将被删除。在处理共享对象时,有两种复制对象的方法。我们通常说的是深拷贝和浅拷贝。深度拷贝意味着复制一个对象。浅层拷贝是引用拷贝,即只是指向共享数据块的指针。深度拷贝需要耗费大量内存和 CPU。浅层拷贝的速度非常快,因为它只需要设置一个指针并增加引用计数。

2025-03-24 19:57:56 861

原创 Qt qtcreator配置cmake

选择可以将其设置为默认,如此新建的kit会自动选择默认cmake。

2025-01-03 18:18:12 1718

原创 自我的认知

认知是指人们获得知识或应用知识的过程,或信息加工的过程,这是人的最基本的心理过程。它涉及感觉、知觉、记忆、思维、想象和语言等多个方面,是人脑接受外界输入的信息,经过加工处理,转换成内在的心理活动,进而支配人的行为的过程。

2024-12-31 21:40:26 1043

原创 wsl安装Linux环境

wsl --install安装 WSL 和 Linux 的默认 Ubuntu 发行版。

2024-12-15 15:52:23 260

原创 Qt Linguist手册-翻译员

Qt Linguist 是为 Qt 应用程序添加翻译的工具。一旦安装了 Qt,就可以像开发主机上的其他应用程序一样启动 Qt Linguist。翻译区域 (1) 始终可见。要显示或隐藏其他视图,请选择视图 > 视图,或使用上面列出的键盘快捷键。您可以通过标题栏拖动视图,将它们排列在翻译区域周围,甚至主窗口之外。

2024-09-30 20:05:22 1343

原创 Qt Linguist手册

Qt 为将 Qt C++ 和 Qt Quick 应用程序翻译成当地语言提供了出色的支持。发布经理、翻译和开发人员可以使用 Qt 工具来完成他们的任务。有关支持的语言和书写系统的更多信息,请参阅。

2024-09-30 20:03:39 1352

原创 Qt CMake

CMake 是一款用于简化跨不同平台开发项目的构建流程的工具。CMake 可自动生成构建系统,如 Makefile 和 Visual Studio 项目文件。CMake 是一个第三方工具,有。本主题介绍如何在 Qt 5 中使用 CMake 3.1.0。

2024-09-29 21:01:51 1817

原创 QT错误集合

1.跳过被禁用的步骤 Make。情况:无法重新构建项目。原因是:禁用的make。

2024-09-29 18:32:57 239

原创 2D 图形绘制与 QPainter

QPainter 提供了绘制向量图形、文本和图像到不同表面(如 QImage、QOpenGLPaintDevice、QWidget 和 QPrinter 等 QPaintDevice 实例)的 API。实际的绘制操作在 QPaintDevice 的 QPaintEngine 中进行。QPaintEngine 中最重要的两个实现是软件光栅化器和 OpenGL (ES) 2.0 后端。软件光栅化器是 Qt 的软件光栅化器,用于在 QImage 或 QWidget 上绘制时使用。

2024-09-27 10:15:41 1098

原创 Qt-qmake语言

许多qmake项目文件只是使用name = value和name += value定义列表来描述项目使用的源文件和头文件。Qmake还提供了其他操作符、函数和作用域,可用于处理变量声明中提供的信息。这些高级特性允许从单个项目文件为多个平台生成makefile。在许多项目文件中,可以使用赋值(=)和append(+=)操作符来包含项目的所有信息。典型的使用模式是将一个值列表赋值给变量,然后根据各种测试的结果添加更多的值。由于qmake使用默认值来定义某些变量,因此有时需要使用删除(-=)操作符来过滤掉不需要的

2024-09-23 21:42:21 1229

原创 Qt-qmake概述

qmake工具为您提供了一个面向项目的系统,用于管理应用程序、库和其他组件的构建过程。这种方法使您能够控制使用的源文件,并允许简洁地描述过程中的每个步骤,通常在单个文件中。qmake将每个项目文件中的信息扩展为一个Makefile,该Makefile执行编译和链接所需的命令。

2024-09-23 20:18:39 638

原创 Qt-拖放

是世界上几乎所有语言的文本编码标准。现在,在大多数现代操作系统上,它被用作文本的本地编码。主要的例外是Microsoft Windows,它仍然有一个双重系统,支持代码页和应用程序的Unicode。

2024-09-23 16:33:00 1127

原创 Qt Model/View之代理

并利用这些函数的默认实现。委托编辑器可以。

2024-09-14 17:16:18 1177

原创 QT Mode/View之View

在模型/视图架构中,视图从模型中获取数据项并将它们呈现给用户。数据的表示方式不必与模型提供的数据表示形式相似,而且可能与用于存储数据项的底层数据结构完全不同。通过使用QAbstractItemModel提供的标准模型接口和QAbstractItemView提供的标准视图接口,以及使用通用方式表示数据项的模型索引,实现了内容与表现的分离。视图通常管理从模型中获得的数据的总体布局。它们可以自己渲染单个数据项,或者使用委托来处理渲染和编辑功能。除了显示数据,视图还处理项目之间的导航,以及项目选择的一些方面。

2024-09-14 14:44:40 1167

原创 Qt Model/View之Model

模型索引以一种独立于任何底层数据结构的方式向视图和委托提供关于模型所提供的项目位置的信息。元素项通过行号和列号以及父元素项的model索引进行引用。模型索引是由模型根据其他组件(如视图和委托)的请求构建的。如果在使用index()方法请求索引时为父元素指定了有效的模型索引,则返回的索引指向模型中父元素下面的元素。获得的索引指向该项的一个子项。如果在使用index()方法请求索引时,为父元素指定了无效的模型索引,则返回的索引指向模型中的顶层元素。角色区分与项相关联的不同类型的数据。

2024-09-12 20:46:18 1193

原创 Qt Model/View概述

委托在委托类一节中描述。

2024-09-10 14:43:03 1348

原创 Qt-布局管理

Qt包含了一组布局管理类,用于描述窗口组件在应用程序用户界面中的布局方式。当可用空间发生变化时,这些布局会自动定位和调整窗口组件的大小,确保它们的排列一致,并且用户界面作为一个整体保持可用。所有QWidget子类都可以使用布局来管理它们的子组件。函数QWidget::setLayout()为部件应用布局。子部件的定位合理的窗口默认大小合理的窗口最小尺寸调整处理内容变更时自动更新:子部件的字体大小、文本或其他内容隐藏或显示子部件移除子部件。

2024-09-06 20:43:47 1200

原创 Qt-桌面服务和托盘

t应用程序在用户的桌面环境中表现良好,但某些集成需要额外的,有时是特定于平台的技术。Qt中的各种类旨在帮助开发人员将应用程序集成到用户的桌面环境中。这些类使开发人员能够在使用跨平台API的同时利用原生服务。

2024-09-06 19:49:29 643

原创 Qt 应用程序主界面

主要窗口类的概述这些类提供了典型现代主应用程序窗口所需的一切,如主窗口本身、菜单和工具栏、状态栏等。菜单小部件,用于菜单栏、上下文菜单和其他弹出式菜单。

2024-09-05 21:47:17 1270

原创 Qt-高DPI显示器

与标准DPI显示器相比,高DPI显示器增加了像素密度。像素密度以每英寸点数(DPI)或每英寸像素(PPI)来衡量,由显示像素的数量和它们的大小决定。因此,单独的像素数量不足以确定显示器是否属于高dpi类别。4K显示器有固定的像素数(约8米),但它的DPI在185(23英寸)和110(40英寸)之间变化。前者是标准96 DPI桌面分辨率的两倍左右;后者仅略高于这个分辨率。

2024-09-05 21:15:40 1619

原创 jemalloc分析内存

分析内存泄漏过程中, 由于tcmalloc不能长时间开启heap profile(会不停涨内存,导致内存爆掉).尝试换jemalloc.程序运行后查看是否挂载了jemalloc。

2024-08-03 16:27:04 497

原创 成长-方法论

这涉及到提供有价值的信息,展示产品的特点和优势,以及解释产品如何满足消费者的需求或解决他们的问题。解答应直接、有力,能够满足听众的期待,同时展示你的产品、服务或观点的价值。:在这个阶段,团队确定改进的目标,识别问题,分析现状,设定要达到的目标,并制定行动计划。问题的提出是为了进一步吸引听众的注意力,使他们更加投入到故事中,期待后续的答案。:适用于高度成熟和自信的下属,这类员工既具备完成任务的能力,也拥有积极的态度。:目标应该是具体的,明确的,避免模糊不清。:目标应该是现实的,可行的,基于现有的资源和条件。

2024-07-05 18:30:34 493

原创 Linux主分区被格式化导致不能被系统识别出来

解决方法:sudo fdisk /dev/sdX重新创建主分区在 Linux 中格式化 SSD 磁盘主要包括几个步骤:确认设备、创建分区(如果需要)、格式化分区以及挂载分区。

2024-07-02 20:52:12 493

原创 Gperftools交叉编译

Gperftools(Google Performance Tools)是由谷歌开发的一组性能分析工具。它包括了多个工 具,其中最为知名的是 tcmalloc(Thread-Caching Malloc)和 CPU Profiler。相比与其他性能分析工具,gperftools有Profiling速度快,灵活性较高的优点。主流的热点分析工具,分别是GNU gprof、Valgrind和Google perftools.

2024-06-29 21:41:14 650

原创 Qt代码分析

要使用代码分析工具,请在Analyze菜单或(Start Debugging of Startup Project)按钮的下拉菜单中选择它。使用Linux Perf工具集成的Performance Analyzer分析嵌入式应用程序和Linux桌面应用程序的CPU使用情况。使用Memcheck工具检测内存管理中的问题,使用Callgrind工具查找代码中的缓存缺失。例如,作为测试套件的一部分分析应用程序的运行方式,并使用结果使测试更有效和更完整。进行代码静态分析和架构分析,检测并消除代码不必要的复杂性。

2024-06-29 16:17:36 504

原创 Qt自定义类型

在开始之前,我们需要确保创建的自定义类型满足QMetaType的所有要求。一个公共的默认构造函数,一个公共复制构造函数,以及一个公共析构函数。public:private:这个类还提供了一个普通使用的构造函数,以及两个用于获取私有数据的公共成员函数。虽然前一节中的声明使该类型可用于直接的信号槽连接,但不能用于排队的信号槽连接,例如不同线程中的对象之间的连接。这是因为元对象系统不知道如何在运行时处理自定义类型对象的创建和销毁。要在运行时创建对象,请。

2024-06-29 15:43:52 1435

原创 Qt坐标系统

坐标系统由QPainter类控制。与QPaintDevice和QPaintEngine类一起,QPainter构成了Qt绘画系统的基础。QPainter用于执行绘制操作,QPaintDevice是一个二维空间的抽象,可以使用QPainter在其上进行绘制,QPaintEngine提供了画家用于在不同类型设备上绘制的界面。QPaintDevice类是可绘制对象的基类:它的绘制功能由QWidget、QImage、QPixmap、QPicture和QOpenGLPaintDevice类继承。

2024-06-21 20:35:08 1468

原创 QT处理Unix信号

每个QSocketNotifier的activated()信号连接到相应的插槽函数,该函数有效地将Unix信号转换为QSocketNotifier::activated()信号。策略是让Unix信号处理程序做一些事情,最终导致Qt信号被发出,然后您只需从Unix信号处理程序返回。回到你的Qt程序,Qt信号被发射,然后被Qt插槽函数接收,在这里你可以安全地做任何Qt的事情你在Unix信号处理程序中不允许做的事情。现在你安全地回到了Qt中,你的信号,你可以做所有Qt的东西,你不被允许做在Unix信号处理程序。

2024-06-20 21:20:45 495

原创 Qt异常处理

初步警告:异常安全功能不完整!一般情况下应该可以工作,但类仍然可能泄漏甚至崩溃。Qt本身不会抛出异常。而是使用错误码, 但是C++可能会抛出异常。此外,有些类有用户可见的错误消息,例如QIODevice::errorString()或QSqlQuery::lastError()。这有历史和现实的原因——打开异常可能会使库的大小增加20%以上。下面几节将描述Qt在编译时启用异常支持时的行为。

2024-06-20 20:55:52 944

channel-v3.json

解决sublime Text3 package control 出现There are no packages available for installation

2018-03-14

磁盘出错无法进入系统fsck自动修复配置

错误 /dev/sda5: UNEXPECTED INCONSISTENCY; RUN fSCK MANUALLY. (i.e., without -a or -p options) fsck exited with status code 4 (initramfs

2024-03-27

空空如也

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

TA关注的人

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