- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 RTMP分块(chunk)
块大小128Byte-65536Byte大分块cpu负载降低,在低带宽环境传输会延迟;小分块延迟低,但cpu消耗大,不利于高码率传输。
2025-04-24 01:41:33
253
原创 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
原创 自我的认知
认知是指人们获得知识或应用知识的过程,或信息加工的过程,这是人的最基本的心理过程。它涉及感觉、知觉、记忆、思维、想象和语言等多个方面,是人脑接受外界输入的信息,经过加工处理,转换成内在的心理活动,进而支配人的行为的过程。
2024-12-31 21:40:26
1043
原创 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
原创 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 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-布局管理
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
2018-03-14
磁盘出错无法进入系统fsck自动修复配置
2024-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人