- 博客(50)
- 收藏
- 关注
原创 飞书真机调试
【摘要】vConsole是移动端网页调试的实用工具,通过在HTML中引入CDN资源即可快速使用。只需添加script标签引入vconsole.min.js,并初始化VConsole实例,就能在真机环境显示调试面板。控制台输出会出现在右下角绿色按钮对应的面板中,方便开发者进行移动端调试。该方法简单高效,是移动端开发调试的有效解决方案。(98字)
2026-01-20 12:42:36
235
原创 封装的上传文件函数
本文实现了一个基于Vue的文件上传组件,主要功能包括:1) 支持多种文件格式(.jpg,.png,.pdf等)上传;2) 通过MD5加密和时间戳生成安全请求头;3) 采用axios实现文件上传,并设置30分钟超时机制;4) 文件上传前进行类型和大小(1GB限制)校验;5) 提供上传成功/失败的回调处理。代码通过FormData处理文件数据,并利用axios的CancelToken实现请求取消功能,同时建议未来可迁移至AbortController方案。
2026-01-19 11:09:24
715
原创 Arco Design Vue 中的a-upload
摘要:本文实现了一个基于Vue的文件上传组件,使用a-upload组件封装,支持自定义上传请求。核心功能包括:1) 通过axios实现文件上传,添加了认证头信息;2) 采用双重超时机制(axios内置和手动取消);3) 实现了上传进度、成功和失败的回调处理;4) 使用MD5和时间戳生成防重放签名。组件支持30分钟超时限制,并提供了详细的错误处理机制,包括网络错误、服务器错误和取消请求等情况。
2026-01-17 14:53:00
839
原创 JavaScript - 让一个数组对象重复多次
该代码演示了引用类型数据的批量复制问题。通过Array(10).fill(list.value).flat()创建包含10个相同引用的数组,所有副本共享原始对象。修改任一副本会影响全部元素,因为它们是同一个对象的引用。这展示了JavaScript中引用类型数据复制时需要特别注意的特性。
2026-01-14 14:51:05
283
原创 CSS实现容器的宽度由内容决定
CSS技巧:实现元素宽度自适应内容 关键代码: flex: 0 0 auto 禁止伸缩(不放大不缩小) width: fit-content 让宽度由内容决定 min-width/max-width 设置合理边界值 解析: flex:0 0 auto相当于: flex-grow:0 禁止放大 flex-shrink:0 禁止缩小(关键) flex-basis:auto 基于内容宽度 配合width:fit-content可实现完美自适应布局,同时通过min/max-width控制极端情况下的显示效果。
2026-01-14 14:27:41
320
原创 Echarts 设置graphic内容居中
摘要:该代码片段定义了一个Vue组件属性props,包含seriesCenter数组参数(默认居中显示)。通过graphic对象配置文本组显示,使用group类型替代text类型,设置left/top位置基于props参数。文本内容通过graphicData映射生成,支持多行显示(\n分隔),并配置居中样式。同时定义了富文本样式(rich),包含orange、greenStyle等不同颜色、字号和字体的文本样式配置,用于实现多样化的文本渲染效果。整体实现了可配置的居中文本组显示功能。
2026-01-10 15:31:33
405
原创 设置滚动条样式
该CSS代码段定义了一个名为.payRank的滚动条样式,包含以下特性:1) 容器设置固定高度并启用垂直滚动;2) 自定义滚动条宽度为2px,高度为8px;3) 轨道背景设为浅灰色(#f1f1f1);4) 滑块使用稍深的灰色(#c1c1c1)。这段代码通过webkit前缀实现了跨浏览器兼容的滚动条样式定制,适用于需要美化默认滚动条的网页元素。
2026-01-10 09:31:00
281
原创 vue动态设置背景图片后显示异常
摘要:使用:style绑定设置background属性时,会覆盖所有子属性(如background-size、background-repeat等),导致它们重置为默认值。正确做法是单独设置backgroundImage并显式声明其他背景属性,例如:style="{backgroundImage:url(...),backgroundSize:'cover',backgroundRepeat:'no-repeat'}"。这样可以避免样式冲突,确保背景图片按预期显示。同时应删除内联styl
2026-01-09 17:18:17
374
原创 Echarts 自定义饼图中间文字
这段代码定义了一个ECharts图表中的label配置对象。主要功能是自定义图表标签的显示内容和样式:1) 设置show:true显示标签;2) 通过formatter函数返回带样式的百分比值;3) 使用rich配置项定义blackColor样式(黑色文字,20px字号)。代码会输出params参数到控制台,并将百分比值以指定样式显示在图表上。
2026-01-06 09:32:41
668
原创 QT - 组播
Qt组播通信要求收发端口一致以确保数据传输。UDP组播机制要求发送方和接收方使用相同端口号,否则无法接收数据。关键点包括:使用正确的组播地址标识组播组;通过QUdpSocket绑定本地地址和端口;调用joinMulticastGroup加入组播组。这些步骤共同保证组播通信的正确实现。
2026-01-04 09:35:48
124
原创 QT - 遮罩层
摘要:本文展示了使用Qt框架实现遮罩弹窗功能的代码示例。通过MaskedWidget类创建半透明遮罩层,并在窗口大小变化时自动调整遮罩尺寸。Login类实现无边框弹窗,包含关闭按钮和透明背景。Index类作为主窗口,控制遮罩层和弹窗的显示/隐藏,通过信号槽机制实现交互。当用户点击特定区域时显示遮罩层和弹窗,点击关闭按钮时隐藏两者。代码采用现代C++和Qt特性,实现了美观的模态对话框效果。
2026-01-04 09:34:55
622
原创 在Qt中激活已运行的应用程序实例
本文介绍了使用Qt实现应用程序单例检测并激活已有实例的方法。通过QLocalServer和QLocalSocket实现进程间通信,当检测到已有实例运行时,新实例会发送"activate"命令并退出,已运行实例收到命令后会激活并前置窗口。文中详细展示了核心代码实现,包括服务器监听、命令处理、窗口激活等关键步骤,并提供了跨平台优化方案(Windows和macOS的特殊处理)以及错误处理机制。这种方法能有效防止多实例运行,同时提供良好的用户体验。
2026-01-03 08:47:25
756
原创 向QListWidgetItem中添加自定义数据
本文介绍了两种在Qt中使用QListWidgetItem存储自定义数据的方法。第一种方法通过setData()函数,使用Qt::UserRole及其增量来存储多个数据项(如ID、名称和路径),并通过data()函数读取;第二种方法同样利用setData()存储单个自定义数据,但更简洁地展示了基本用法。两种方法都通过QVariant类型实现数据的存储和读取,适用于需要为列表项附加额外信息的场景。使用时需注意Qt::UserRole是保留的最小角色值,自定义数据应使用大于该值的角色。
2026-01-03 08:46:20
361
原创 QT - 系统托盘
本文介绍了在Qt中使用QSystemTrayIcon类创建系统托盘菜单的方法。通过示例代码展示了如何创建托盘图标、添加菜单项("显示窗口"和"退出"),并实现点击事件处理。关键步骤包括:设置图标资源、创建菜单对象、添加动作项、连接信号槽处理点击事件,最后将菜单附加到托盘图标并显示。示例中还实现了左键单击托盘图标时显示/隐藏窗口的功能。需要开发者准备自己的图标资源替换示例中的路径。
2026-01-03 08:45:23
607
原创 QT - 事件过滤
摘要:这段代码展示了一个使用Qt框架实现模态对话框时过滤鼠标事件的方法。通过自定义ModalEventFilter类继承QObject并重写eventFilter函数,当isModal为true时拦截鼠标移动、点击和释放事件。主窗口安装此事件过滤器后,在弹窗打开时(setModal(true))能有效屏蔽主窗口的鼠标交互,实现模态对话框效果。核心逻辑是通过事件过滤器控制事件传递,简单高效地实现了模态窗口的交互限制功能。
2026-01-03 08:44:39
534
原创 设置QMessageBox样式不受其他样式影响
摘要:本文介绍了在Qt中设置QMessageBox样式独立性的几种方法。主要包括:1)使用Qt::Tool窗口类型;2)设置独立样式表;3)创建无父窗口的QMessageBox;4)通过QPalette和QFont定制外观。同时详细说明了如何创建警告类型的消息框,推荐使用QMessageBox::warning()静态方法,也提供了通过设置图标和类型的替代方案。文章强调样式表可以自定义外观但不改变内部逻辑,建议根据具体需求选择合适的方法,通常结合窗口类型和样式表效果最佳。
2026-01-03 08:43:32
1045
原创 给PushButton设置Menu
Qt中移除PushButton的下拉箭头可以通过样式表实现。当给QPushButton设置菜单时,默认会显示右侧下拉箭头提示。要去除这个箭头,只需在样式表中将QPushButton::menu-indicator的image属性设为none即可。示例代码展示了如何创建一个带菜单的按钮,并通过setStyleSheet("QPushButton::menu-indicator{image:none;}")方法隐藏下拉箭头,保持按钮简洁外观。这种方法简单有效,不影响按钮的菜单功能。
2026-01-02 18:26:04
234
原创 获取QWidget中的元素
Qt中可通过对象树获取Widget元素。使用findChild()函数根据对象名递归查找子元素,如示例中通过"button"名称获取QPushButton。也可用children()获取子对象列表。对象树机制使得父子Widget间的查找操作变得便捷高效。
2026-01-02 18:25:51
357
原创 动态调用项目
本文介绍了在QtCreator中动态调用项目参考文件的步骤:1)创建主项目并添加子项目;2)准备待导入项目并复制到同级目录;3)删除被调用项目的main文件,创建.h文件定义全局宏和设置;4)主项目即可调用子项目头文件。该流程实现了项目间的动态调用和资源整合。
2026-01-02 09:24:22
544
原创 点PushButton切换页面
本文介绍了在Qt中使用信号和槽机制实现按钮切换页面的方法。通过QStackedWidget作为页面容器,创建多个页面并添加到堆栈中。为每个按钮设置点击信号,连接到setCurrentIndex槽函数,使点击不同按钮时切换到对应索引的页面。这种方法简洁高效,利用Qt的信号槽机制实现了页面切换功能。
2026-01-02 08:47:25
293
原创 创建DLL和使用DLL
本文介绍了DLL的创建与使用流程。首先通过参考文章说明DLL创建方法,展示创建后的效果图;接着为项目添加UI界面并设计测试案例;然后将生成的dllTest.dll文件放入lib目录,同时复制dlltest.h和dllTest_global.h头文件到include目录;最后进行测试验证。整个过程涵盖了从DLL开发到实际应用的关键步骤,包括文件组织、接口引用和功能测试等环节。
2026-01-01 16:44:32
347
原创 打开指定目录
本文介绍了两种在Qt中打开指定目录的方法。第一种方法使用QDesktopServices类,通过QUrl对象打开本地目录路径,并处理可能的失败情况。第二种方法(推荐)详细展示了如何正确转义路径字符,使用QUrl::fromLocalFile转换路径,并通过QDesktopServices::openUrl调用系统文件浏览器打开目录。两种方法都需要包含Qt核心模块和GUI模块,并注意路径中的反斜杠需要转义处理。示例代码清晰地演示了实现过程,适用于需要从Qt应用程序中打开系统目录的场景。
2026-01-01 16:26:49
556
原创 窗口保持在顶部
摘要:本文介绍了在Qt中实现点击任务栏缩略图时使弹窗置顶显示的方法。通过设置窗口标志Qt::WindowStaysOnTopHint和调用特定函数,可以让QDialog弹窗保持在其他窗口顶部。示例代码展示了如何创建置顶的模态对话框,但指出实际应用中可能需要更复杂的逻辑来处理操作系统级别的窗口管理问题。
2025-12-31 15:57:51
241
原创 避免重复打开外部程序
本文介绍了使用Qt实现应用程序检测并控制xx.exe启动的多种方案,包括: 基本跨平台实现:通过tasklist/pgrep命令检测进程 Windows优化版本:使用CreateToolhelp32Snapshot API 锁文件方案:通过QLockFile防止竞争条件 持续监控方案:定时检查进程状态 关键特性包括: 跨平台兼容性 双重验证机制 完善的错误处理 资源管理优化 可选的持续监控功能 实现后能有效防止重复启动目标程序,并提供清晰的用户反馈,适用于不同复杂度的应用场景。
2025-12-31 15:56:24
774
原创 setWindowFlags
摘要:该Qt代码通过setWindowFlags()设置了多个窗口标志:Qt::FramelessWindowHint移除边框和标题栏,Qt::Tool将窗口设为工具窗口,Qt::X11BypassWindowHint(仅X11有效)绕过窗口管理器控制,Qt::WindowStaysOnTopHint保持窗口置顶。组合这些标志可创建高度定制的无边框工具窗口,适用于特殊场景如游戏或监控工具。需注意X11BypassWindowManagerHint可能导致窗口行为异常,且仅适用于Linux/X11平台。
2025-12-30 14:54:21
407
原创 QT列表-QListWidget
本文介绍了在Qt中使用QListWidget实现应用图标列表的方法。通过设置图标模式、调整图标大小和间距,可以创建类似应用商店的界面效果。示例代码展示了如何添加带图标的列表项,并批量设置文字颜色。同时提供了去除滚动条、自定义样式等可选优化建议。对于更复杂的布局需求,建议使用QListView配合自定义模型和委托来实现。
2025-12-30 14:53:30
937
原创 QTabWidget
本文介绍了在Qt中获取QTabWidget当前激活标签页的方法。通过currentIndex()函数可获取标签页索引,使用currentWidget()函数可获得对应的QWidget对象。示例代码展示了如何创建含三个标签页的QTabWidget,并打印当前激活标签页的索引和名称。这两个函数是获取QTabWidget当前选中页面的常用方式。
2025-12-29 13:43:47
348
原创 QTableWidget
摘要:Qt中可通过QStackedWidget的indexOf()方法获取指定widget的索引。要获取所有widget索引,可以遍历count()返回的widget数量,逐个调用widget(i)获取每个widget,再使用indexOf()查询其索引。示例代码展示了如何打印所有widget的索引和指针信息,便于调试和管理QStackedWidget中的页面。
2025-12-29 13:42:30
983
原创 QPixmap调整图片大小
本文介绍了Qt中QPixmap的图片缩放方法。通过scaled()函数可实现图片大小调整,支持设置目标宽高和保持宽高比选项(Qt::KeepAspectRatio或Qt::IgnoreAspectRatio)。还提供了两种缩放模式选择:Qt::SmoothTransformation实现平滑缩放,Qt::FastTransformation进行快速缩放但可能失真。文中给出了具体的代码示例,演示如何加载图片并进行不同参数的缩放操作。
2025-12-28 13:10:49
452
原创 QListWidget
本文介绍了Qt中QListWidget的使用方法,包括基础设置和交互功能实现。主要内容包括: QListWidget基本配置:设置标题、图标模式、调整大小、间距、滚动条等属性 添加列表项:创建QListWidgetItem并设置图标、文本、提示信息和颜色 点击事件处理:通过itemClicked信号连接槽函数实现点击响应 右键菜单实现:两种方法展示如何为列表项添加上下文菜单 方法一:使用customContextMenuRequested信号 方法二:重写contextMenuEvent方法 菜单项功能实现
2025-12-28 13:10:10
446
原创 QLinearGradient
Qt中的qlineargradient用于创建线性渐变效果,可在样式表或代码中使用。样式表中通过定义起点(x1,y1)、终点(x2,y2)和颜色停靠点(stop)来设置渐变,如从红色到蓝色的背景渐变。代码中则使用QLinearGradient类,通过设置坐标和颜色点创建渐变,再用QBrush填充绘制。两种方式都能实现颜色平滑过渡,但代码方式更灵活可控。
2025-12-27 12:39:22
386
原创 Layout布局
摘要:本文介绍了在Qt中使用QVBoxLayout和QHBoxLayout进行布局管理的方法。对于QVBoxLayout,可以通过设置部件的最小/最大尺寸、大小策略和布局间距来控制垂直排列的部件大小;对于QHBoxLayout,使用setAlignment(Qt::AlignLeft)可实现水平左对齐。两种方法都支持通过setSpacing()调整部件间距,setContentsMargins()控制边距。这些技术可帮助开发者灵活控制界面布局,同时保持自适应特性。
2025-12-27 12:38:37
732
原创 JSON数据读写
在Qt中处理JSON格式数据,你可以使用QJsonDocument, QJsonObject, QJsonArray, QJsonValue等类。以下是一个简单的例子,展示如何读取和写入JSON数据。这个例子展示了如何创建一个JSON对象,将其写入到文件,然后从文件读取并解析JSON数据。根据实际需求,你可能需要添加更多的错误处理和类型检查。// 写入JSON数据。// 读取JSON数据。// 写入JSON数据到文件。// 读取JSON数据从文件。// 使用读取的数据。
2025-12-26 09:55:19
503
原创 QT-组播
具体来说,当发送方发送一个组播数据报时,它会将数据报发送到指定的组播地址和端口号。如果接收方的端口号与发送方的端口号不一致,那么接收方将无法接收到发送方发送的数据报。加入组播组:在Qt中,可以通过调用QUdpSocket类的joinMulticastGroup函数来将QUdpSocket加入指定的组播组。同时,还需要注意组播地址的选择、套接字的绑定以及加入组播组等步骤的正确性。这是因为UDP组播的工作原理要求发送方和接收方都使用相同的端口号来确保数据报能够正确传输和接收。在Qt中实现组播(多播)通信时,
2025-12-23 10:15:23
123
原创 QT-总览
由QT的QObject类派生出来的类,无需手动释放堆内存,添加到QObject或QObject派生类的对象,也无需手动释放。程序结束时,QT会自动检测对象树的对象,释放对象前先释放子对象,然后一层一层释放,最终释放最上层对象。[输入图片说明](%E7%BB%99ui%E4%B8%AD%E7%9A%84%E5%85%83%E7%B4%A0%E6%B7%BB%E5%8A%A0%E4%BF%A1%E5%8F%B7%E5%92%8C%E6%A7%BD%E6%AD%A5%E9%AA%A4%E4%BA%8C.jpg)
2025-12-23 10:09:35
483
原创 js 将数据保存到本地
/ 当你结束使用某个 URL 对象之后,应该通过调用这个方法来让浏览器知道不用在内存中继续保留对这个文件的引用了。// 释放一个之前已经存在的、通过调用 URL.createObjectURL() 创建的 URL 对象。// dada 表示要转换的字符串数据,type 表示要转换的数据格式。// const stringData = '一段文本'// 根据 blob生成 url链接。// 创建一个 a 标签Tag。// 给 a 标签添加点击事件。// 设置保存后的文件名称。// 设置文件的下载地址。
2025-12-22 08:53:15
322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅