<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[草上爬的博客]]></title><description><![CDATA[专注技术，热爱分享，QQ：302877285]]></description><link>https://blog.youkuaiyun.com/caoshangpa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; caoshangpa]]></copyright><item><title><![CDATA[Qt基础之五十：Qt设置样式的几种方式]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/152733406</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/152733406</guid><author>caoshangpa</author><pubDate>Wed, 08 Oct 2025 21:19:06 +0800</pubDate><description><![CDATA[本文详细介绍了Qt5.12中设置样式的三种主要方式：1. 使用内置QStyle：通过QStyleFactory创建系统内置样式(如Windows/Fusion等)，支持全局或单个控件设置，可继承QProxyStyle实现自定义样式；2. 使用QPalette：通过调色板的颜色组(活动/禁用/非活动)设置控件颜色，支持动态修改，保持界面一致性；3. 使用QSS样式表：通过CSS语法快速定制界面，底层由QStyleSheetStyle和QCssParser实现。文中还分析了各方式的实现原理，包括样式继承关系、调]]></description><category></category></item><item><title><![CDATA[QTextEdit之高效复制文本]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/152161836</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/152161836</guid><author>caoshangpa</author><pubDate>Sat, 27 Sep 2025 10:24:41 +0800</pubDate><description><![CDATA[本文介绍了优化QPlainTextEdit控件复制功能的方法。当处理大量文本时（如100万行），直接使用控件的copy()方法会导致界面卡顿。作者提出高效解决方案：通过textCursor().selectedText()获取选中文本，直接设置到剪贴板。但需注意换行符问题（0x2029会被替换为可见换行符'\n'），最终实现流畅无卡顿的文本复制功能。]]></description><category></category></item><item><title><![CDATA[Qt之修改纯色图片的颜色]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/149149882</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/149149882</guid><author>caoshangpa</author><pubDate>Sun, 06 Jul 2025 10:14:54 +0800</pubDate><description><![CDATA[Qt之修改纯色图片的颜色]]></description><category></category></item><item><title><![CDATA[CMake MinGW静态链接libgcc、libstdc++和libpthread]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/149149194</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/149149194</guid><author>caoshangpa</author><pubDate>Sun, 06 Jul 2025 09:17:37 +0800</pubDate><description><![CDATA[CMake MinGW静态链接libgcc、libstdc++和libpthread]]></description><category></category></item><item><title><![CDATA[OpenWrt：交叉编译speexdsp]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148821043</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148821043</guid><author>caoshangpa</author><pubDate>Sun, 22 Jun 2025 07:04:04 +0800</pubDate><description><![CDATA[OpenWrt：交叉编译speexdsp]]></description><category></category></item><item><title><![CDATA[OpenWrt：交叉编译opus]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148821033</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148821033</guid><author>caoshangpa</author><pubDate>Sun, 22 Jun 2025 06:58:22 +0800</pubDate><description><![CDATA[OpenWrt：交叉编译opus]]></description><category></category></item><item><title><![CDATA[OpenWrt：交叉编译openssl]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148676602</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148676602</guid><author>caoshangpa</author><pubDate>Sun, 15 Jun 2025 22:04:56 +0800</pubDate><description><![CDATA[OpenWrt：交叉编译openssl]]></description><category></category></item><item><title><![CDATA[QComboBox设置圆角下拉列表并调整下拉列表位置]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148659667</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148659667</guid><author>caoshangpa</author><pubDate>Sat, 14 Jun 2025 22:49:04 +0800</pubDate><description><![CDATA[QCombobox设置圆角下拉列表并调整下拉列表位置
下拉列表其实在一个QFrame里面，我们用findChild找到它，并且在它弹出后，向下移动几个像素
下拉列表圆角需要先设置列表背景透明和无边框，然后再在样式表里设置radius]]></description><category></category></item><item><title><![CDATA[OpenWrt：让OpenWrt支持USB声卡]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148643243</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148643243</guid><author>caoshangpa</author><pubDate>Fri, 13 Jun 2025 23:29:05 +0800</pubDate><description><![CDATA[本文介绍了Windows、Ubuntu和OpenWrt系统下的声卡测试方法。Windows平台使用CM108免驱USB声卡，通过系统自动识别功能测试硬件状态；Ubuntu需安装ALSA工具包，使用aplay/arecord命令进行音频测试，并介绍了设备配置方法；OpenWrt平台测试步骤也包含在内。文章详细说明了各平台测试的注意事项，如虚拟机环境设置、音频参数指定等，为开发者和用户提供了实用的声卡测试解决方案。]]></description><category></category></item><item><title><![CDATA[OpenWrt：使用ALSA实现边录边播]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148501914</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148501914</guid><author>caoshangpa</author><pubDate>Sat, 07 Jun 2025 22:43:07 +0800</pubDate><description><![CDATA[ALSA是Linux系统的主流音频架构，包含内核驱动层(alsa-driver)和应用层库(alsa-lib)。在Ubuntu中可通过libasound2-dev包安装，提供aplay等实用工具。示例代码展示了如何通过alsa-lib API实现音频采集和播放功能，编译时需要链接-lasound库。虚拟机使用时需确保声卡设备已连接。OpenWrt平台也支持ALSA，但需注意嵌入式环境的特殊配置。ALSA为Linux音频处理提供了完整的解决方案。]]></description><category></category></item><item><title><![CDATA[C++判断是否包含子字符串]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148491143</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148491143</guid><author>caoshangpa</author><pubDate>Sat, 07 Jun 2025 09:30:00 +0800</pubDate><description><![CDATA[C++判断是否包含子字符串]]></description><category></category></item><item><title><![CDATA[使用sscanf分割ip地址]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148378775</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148378775</guid><author>caoshangpa</author><pubDate>Mon, 02 Jun 2025 10:06:22 +0800</pubDate><description><![CDATA[使用sscanf分割ip地址]]></description><category></category></item><item><title><![CDATA[Qt实现的水波进度条和温度进度条]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148376954</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148376954</guid><author>caoshangpa</author><pubDate>Mon, 02 Jun 2025 09:20:48 +0800</pubDate><description><![CDATA[本文介绍了两种Qt控件实现方法：水波动画控件和温度进度控件。水波控件通过正弦/余弦函数生成波浪曲线，采用相位偏移实现双波叠加效果，并利用定时器动态更新波浪位置。温度控件采用饼状图展示进度，通过定时器控制高亮圆点移动来指示运行状态，防止用户误判为卡顿。两者都支持自定义颜色、数值范围和边框宽度等属性，并提供了完整的类实现代码，包括绘制逻辑、动画控制和属性设置方法。]]></description><category></category></item><item><title><![CDATA[使用QCollator对QStringList排序]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148189340</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148189340</guid><author>caoshangpa</author><pubDate>Sat, 24 May 2025 12:14:22 +0800</pubDate><description><![CDATA[QCollator是一个支持语言环境的字符串排序工具，提供三种排序策略：设置大小写敏感、忽略标点符号和数字模式。在数字排序场景中，通过setNumericMode(true)可实现按数值排序（如"1"<"100"）。对于混合字符串也能灵活处理，可与std::sort配合使用，支持直接传入比较器或lambda表达式两种方式。该工具能有效解决常规排序无法正确处理数字字符串的问题。]]></description><category></category></item><item><title><![CDATA[QTabWidget垂直TabBar的图标和文本水平显示]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/148188297</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/148188297</guid><author>caoshangpa</author><pubDate>Sat, 24 May 2025 11:09:19 +0800</pubDate><description><![CDATA[QTabWidget垂直TabBar的图标和文本水平显示]]></description><category></category></item><item><title><![CDATA[Qt高分屏自适应]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/146448100</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/146448100</guid><author>caoshangpa</author><pubDate>Sat, 22 Mar 2025 22:48:21 +0800</pubDate><description><![CDATA[Windows 上的桌面应用程序可以在不同的 DPI 感知模式下运行。这些模式可实现不同的 DPI 缩放行为，并且可以使用不同的坐标空间。有关 DPI 感知的详细信息，请参阅。请务必显式为进程设置默认 DPI 感知模式，以避免意外行为。有两个清单设置可用于指定进程默认 DPI 感知模式：<dpiAwareness> 和 <dpiAware>。<dpiAware> 已在 Windows Vista 中引入，仅允许将进程默认设置设置为系统感知。]]></description><category></category></item><item><title><![CDATA[QGroupBox取消勾选时不禁用子控件]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/146447804</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/146447804</guid><author>caoshangpa</author><pubDate>Sat, 22 Mar 2025 22:27:18 +0800</pubDate><description><![CDATA[QGroupBox取消勾选时不禁用子控件]]></description><category></category></item><item><title><![CDATA[Qt基础之四十九：Qt属性系统（Property System）]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/145841024</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/145841024</guid><author>caoshangpa</author><pubDate>Mon, 24 Feb 2025 23:30:34 +0800</pubDate><description><![CDATA[属性使用的自定义类型需要使用Q_DECLARE_METATYPE()宏进行注册，以便将其值存储在QVariant对象中。这使得它们既适用于在类定义中使用Q_PROPERTY()宏声明的静态属性，也适用于在运行时创建的动态属性。]]></description><category></category></item><item><title><![CDATA[QListView实现文件选择功能]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/145815713</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/145815713</guid><author>caoshangpa</author><pubDate>Sun, 23 Feb 2025 21:14:19 +0800</pubDate><description><![CDATA[QList实现的文件选择功能很常用，但是最高效的做法是先让左侧的源列表默认排序，然后再进行文件选择，这样在选择操作后，无论是源列表还是目标列表，都能很容易保证原来的顺序。]]></description><category></category></item><item><title><![CDATA[QTreeView添加网格线]]></title><link>https://blog.youkuaiyun.com/caoshangpa/article/details/145622077</link><guid>https://blog.youkuaiyun.com/caoshangpa/article/details/145622077</guid><author>caoshangpa</author><pubDate>Thu, 13 Feb 2025 22:52:09 +0800</pubDate><description><![CDATA[网格线虽然可以用样式表添加，但效果不好。这里重写QTreeView的drawRow函数来实现网格线的绘制
需要注意的是，当我们对QTableView/QTreeView/QTableWidget/QTreeWidget某行选中后，会发现某些单元格设置的前景色被覆盖了，比如设置的红色，一旦选中就变成了白色（如下图所示）。这肯定不是我们想要的，需要用自定义委托将其去掉。]]></description><category></category></item></channel></rss>