Qt Quick与QML入门指南:从基础语法到跨平台应用实战
1. 项目概述为什么要用Qt Quick/QML做界面开发先说结论如果你是一个C开发者或者是一个想在桌面端快速做出漂亮界面、又不甘心用Electron那套重型方案的开发者Qt Quick/QML值得你认真学一遍。这套入门视频教程的核心目标就是带你从“听说过QML”到“能独立写出一个完整的跨平台界面应用”我整理这套教程时把当年自己踩过的坑、绕过的弯全部揉进了每一节课里。Qt Quick是什么它是Qt框架里负责声明式UI开发的那一部分而QML是它的描述语言。你可以把QML看成是JSON和JavaScript的混合体用类似对象嵌套的语法描述界面结构和布局用JavaScript处理逻辑交互。它与传统Qt Widgets最本质的区别在于Widgets是命令式写法你要一个个“new”出控件、手动设置布局QML是声明式写法你只需要描述“界面上应该有什么、在哪里、什么状态”剩下的交给引擎渲染。这个思维切换是很多初学者卡住的第一道门槛我愿称之为“从开手动挡换成自动驾驶”不是不用管了而是你管的层面变了。我录制这套视频教程的初衷很朴素。当年我所在的项目组做一个跨平台的设备管理工具既有Windows端又有Linux端还要适配触摸屏。用Widgets做代码量大、皮肤定制麻烦、动画效果写起来特别痛苦后来切到Qt Quick同样的功能界面代码量缩减了一半左右而且界面响应速度和内存占用都优于同类Web技术方案。我当时的感受是Qt Quick可能是桌面和嵌入式领域里把“开发效率”和“运行性能”平衡得最好的一套技术栈。这套视频教程适合谁来学门槛不高但也不是零基础。如果你懂一点C语法哪怕只会写简单的类看这套教程会很舒服如果你只会JavaScript/Python也没关系教程前几章会把必要的Qt基础概念补齐。无论如何只要你愿意动手敲代码每周抽出三到五个小时一个月左右基本就能上手。2. 教程内容设计一条有坡度的学习路线2.1 先解决“QML到底是个什么东西”的思想包袱视频教程的第一章我没有直接上来就写Hello World而是花了一整节讲清楚Qt、Qt Quick、QML、QPainter、Widgets这几个概念的关系。这一节看似“废话”但直接决定你后面的学习顺畅度。很多新手容易绕进一个误区以为QML是另一种通用编程语言到处找它怎么定义类、怎么写接口。实际上QML是一种领域特定语言它只负责描述UI背后真正的逻辑在C层或者JavaScript层完成。所以教程第一章明确告诉你三条信息QML文件就是一个声明式的对象树对象名不一定是类型名你可以自定义id属性变化是QML一切行为的源头。这三句话能帮你省掉至少两周的迷茫期。后面的内容编排上我用了一条清晰的递进线环境准备 → 基础语法 → 布局系统 → 组件使用 → 动画状态 → 数据交互 → C混合编程 → 打包发布。每一步都配一个小而完整的例子不搞“后面再告诉你”这种悬而未决的教学方式。2.2 核心知识点清单哪些必须拿下哪些可以先略过根据我个人的教学和实战经验以下这些点是初学阶段的“必须拿下”区属性绑定与属性变化理解id、property关键字理解onXxxChanged的信号分支写法基础布局Row、Column、Grid、Flow、Anchor布局。Anchor是QML最出彩的设计值得花时间搞定基础组件Rectangle、Text、Image、ListView、MouseArea逻辑控制if、for在QML里的写法建议结合JavaScript标准库Array、Object信号与槽QML自有的signal关键字以及Connections的用法动画系统NumberAnimation、PropertyAnimation、Transition、Behavior可以暂时略过的区域自定义C Model、大批量数据的TableView优化、GLSLShaderEffect高级特效、各平台打包的细枝末节。这些放到中后期再接触前端保持专注先把语言和UI思维夯实。2.3 与C交互的那道分水岭很多教程都是“QML只讲QMLC只讲C”这不现实因为真实项目十个里有八个是C负责业务逻辑、QML负责界面。视频教程专门安排了一整章讲两者交互的三种经典方式第一种是qmlRegisterType注册C类型给QML实例化第二种是把C对象作为context property暴露给QML直接访问属性和槽函数第三种是C侧发信号给QML响应。这三种方式对应不同的协作模式不存在谁更好只看你的架构需求。这一章我放在了教程后半段但它是真正的“付费内容”绝大多数实战项目就靠这几种模式把整个应用叠起来。3. 实操过程一步一步做一个带交互的QML界面3.1 环境搭建与工程创建工欲善其事必先利其器。Qt项目的环境配置历来是初学者第一个拦路虎教程里我用了最省心的组合Qt 5.15 LTS版本 Qt Creator CMake构建系统。为什么选这个组合Qt 5.15是5系最后一个长期支持版本稳定性经过大量项目验证Qt Creator从4.12版本开始对CMake的支持已经非常成熟而CMake相比qmake跨平台写法更统一、和现代IDE配合更顺畅。安装完成后新建工程的步骤是这样打开Qt Creator点击“New Project”选择“Qt for Python”或“Qt Quick Application”根据你的安装组件项目名称按实际需求填例如TempMonitorDemo路径不要带中文和空格构建系统选CMake完成向导后目录下会自动生成CMakeLists.txt、main.cpp和qml.qrc资源文件这里有一个经验点初学者容易跳过“安装时勾选组件”这一步结果装完发现没有Qt Quick模块属实冤枉。实际上Qt安装包索引页里的“Developer and Designer Tools”默认勾选你只需确保Qt Libraries里勾选你目标平台的MinGW或MSVC组件即可。3.2 第一个可交互的QML界面做一个小工具教程第二节课的实操我选了一个很有画面感的小项目一个模拟CPU温度监控的桌面小组件界面有一个圆环仪表盘和实时刷新的数字外加两个按钮切换“运行/暂停”。先看工程里最核心的main.qml是怎么写的。省略项目的A盘配置细节这段代码是入门阶段必吃透的经典框架import QtQuick 2.15 import QtQuick.Controls 2.15 ApplicationWindow { id: window width: 480 height: 320 visible: true title: qsTr(温度监控) // 全局模拟温度数据源教程阶段先不用C property int temperatureValue: 36 Timer { id: refreshTimer interval: 1000 running: true repeat: true onTriggered: { // 随机上下浮动模拟温度数据变化 temperatureValue Math.min( 90, Math.max(20, temperatureValue (Math.random() * 10 - 4))) } } Column { anchors.centerIn: parent spacing: 20 Text { id: tempText text: window.temperatureValue °C font.pixelSize: 48 anchors.horizontalCenter: parent.horizontalCenter } Button { text: refreshTimer.running ? 暂停 : 运行 anchors.horizontalCenter: parent.horizontalCenter onClicked: refreshTimer.running !refreshTimer.running } } }释放你的思维。这个例子虽然只有几十行但你已经接触到了QML最重要的四件事第一属性绑定。text: window.temperatureValue °C意味着当温度数值变化时Text对象会自动刷新显示QML引擎替你完成了UI与数据的同步这比传统Widgets里手动setText高效得多。第二Timer组件驱动数据源周期性变化。QML内置了许多类似Timer这类不直接显示、但承担逻辑控制功能的组件用好它们你能省掉大量JS定时器代码。第三MouseArea / Button的响应方式。你在onClicked里写一句话就够了不用再挂接“信号”和“槽”因为QML把两者直接焊在属性语法里。第四属性变化触发的自动更新链路数字变了→Text刷新→界面重绘整个链路都是框架自动完成的这就是声明式UI的核心体验。3.3 布局与组件选型实战中怎么选不纠结做界面久了你会形成一种条件反射“这里数据多条、逻辑相同用ListView这里是固定卡片用Row/Column套Rectangle这里要切换子页面用StackView。”视频教程在布局章节里特意做了对比实验同样的需求分别用Positioner布局Row/Column和Anchors写一遍然后对比可维护性。我的经验是简单线性排列用Row/Column局部对齐和边缘贴靠用Anchors网格网格规律排布用Grid需要等距流式回绕用Flow。但不管选哪种始终记住一个原则布局的目标是给UI组件定义“关系到可见性的约束”而不是把每个元素坐标钉死。尽量去描述“这个元素应该在另一个元素的右边、间隔12像素”而不是“这个元素的x320、y56”。前者可自适应、可维护后者换个设备就废了。ListView是QML高频组件也是很多新手吐槽“我数据怎么显示不出来”的重灾区。正确用法其实是三件套一个model数据源可以是数组、ListModel或CModel、一个delegate单条数据的显示模板必要时配一个header/footer。下面这个写法是教程中的标准示例ListView { id: listView anchors.fill: parent model: ListModel { ListElement { name: Qt基础; progress: 0.8 } ListElement { name: QML布局; progress: 0.6 } ListElement { name: C交互; progress: 0.2 } } delegate: Rectangle { width: ListView.view.width height: 50 color: index % 2 0 ? #F0F0F0 : #FFFFFF Row { spacing: 10 Text { text: name; anchors.verticalCenter: parent.verticalCenter } Text { text: (progress * 100).toFixed(0) %; anchors.verticalCenter: parent.verticalCenter } } } }一个常见的陷阱在delegate里width和height的单位是相对父项还是相对ListView答案是默认相对delegate自己的context而parent往往指向ListView的viewport并不是屏幕坐标系。很多同学以为这里可以直接引外部组件的id但更稳的写法是用ListView.view.width这能避免因代理层级变化导致的引用失效。3.4 动画与状态界面“活”起来的关键QML动画是让应用摆脱“死板工具”观感的最大功臣。教程里我引入了一个场景两个面板切换时一个淡入一个滑出。只用了大约十行Rectangle { id: panelA width: 200; height: 200 color: #3DBE5B state: panelSwitch ? hidden : shown states: [ State { name: hidden; PropertyChanges { panelA.opacity: 0 } }, State { name: shown; PropertyChanges { panelA.opacity: 1 } } ] transitions: Transition { NumberAnimation { property: opacity; duration: 300 } } }注意这里的核心不是动画曲线本身而是QML的“状态机”思维。你不需要手动在逻辑里判断“现在是不是该显示这个面板”而是定义好state样子自然跟着状态走。真实项目里我会鼓励你在界面复杂度上来之前就用上States它是QML与Widgets拉开体验差距的重要武器。4. 视频教程里的工程化实践4.1 从Qt Creator部署到目标平台教程的收尾部分我花了好几集讲部署发布这部分是很多初学视频不愿意讲的“苦活”。因为不同平台各自的坑太多Linux打包要处理依赖库搜索路径Windows发布要带上Qt DLL和插件目录嵌入式平台要考虑存储大小。一个实操经验Windows上千万不要手动从Qt/bin里一个个复制DLL这是最原始也最容易漏的方式。正确姿势是用Qt自带工具windeployqt在Qt\5.15.2\msvc2019_64\bin路径下执行cd /d 你的exe所在目录 \path\to\windeployqt.exe --qmldir 你的qml目录 yourapp.exe加--qmldir是必须的否则qml插件不会被自动打包在别的机器上打开会白屏或报module QtQuick.Controls is not installed。我第一次打包时就漏了这个参数结果在另一台测试机上折腾了两个小时。Linux下推荐用linuxdeployqt辅以appimage格式把依赖库一起压进去。这套方法在教程里演示过完整流程看到最终生成的可执行文件能在全新系统上双击运行那种成就感不亚于写完一个复杂功能。4.2 代码组织与资源管理的好习惯QML项目一旦超过几十个文件文件组织就开始影响开发效率。我推荐的目录风格是把界面上各个组件拆分到独立qml文件里每个组件文件尽量“自包含”自身布局、自身样式、自身内部逻辑。数据与界面彻底分离——模型归模型视图归视图。用一组CustomStyle目录存放通用的按钮、输入框、卡片样式组件这在后期换肤或者统一交互规范时极其有用。资源文件方面qml.qrc不只是放图片字体文件、翻译文件、音频文件都建议统一放进qrc。这样做有个实际好处打包后的应用对外部文件依赖极小不担心路径漂移。唯一要注意的是qrc会把文件编进二进制体积会增加但对于桌面应用来说这个代价几乎可以忽略。4.3 性能注意事项从小项目开始就建立肌肉记忆教学生动的地方在于我会直接给每个性能技巧配一个“反例”看效果。比如在ListView的delegate里做复杂嵌套布局一屏显示30项也许能忍住但把窗口尺寸放小、快速拖动滚轮时卡顿立竿见影。于是趁热打铁讲解为什么第一delegate创建和销毁是很昂贵的滚动时QML会持续创建新项并销毁离开视口的项所以要尽量保持delegate“轻”。能用单行Text表达就绝不用三个Rectangle嵌套。第二避免在onWidthChanged/onHeightChanged里做复杂计算和强制布局修改因为布局尺寸一变会牵连整棵组件树重新求值。第三图片资源尽量用合适尺寸而不是大图压缩显示加载大图再fillMode: Image.PreserveAspectFit会白白消耗内存和缩放性能。第四只有真正需要实时全屏刷新时才考虑自定义绘制大部分场景用标准控件加样式就足够。5. 常见问题与排查技巧实录5.1 新手高频报错速查表我在视频剪辑时专门整理过一个问题清单下面这几个是高频中的高频遇到直接照单全收报错现象大概率原因解决思路运行后一打开就黑屏/崩溃qml.qrc里路径或资源未正确加载检查qrc路径是否以/开头检查qmldir插件是否被打包module QtQuick.Controls is not installed导入版本与安装组件不匹配在pro或CMake中开启对应Quick模块或检查编译器套件Type name is not allowedqml文件里使用了未定义的组件名检查该组件的qml文件是否在当前目录、ID大小写是否一致ReferenceError: xxx is not definedJavaScript作用域里找不到该id确认id在同一个QML上下文可访问区杜绝跨组件直接调用子项id界面显示正常但控件全部集中在左上角缺少布局Anchor或没有显式设置宽高给根items设置anchors.fill: parent或使用Row/Column配合spacing关于id有一个容易踩的细节QML里id是文档级作用域你可以在同一个文件里的任何位置访问它但跨文件不行。想跨组件通信请通过信号或定义在根节点上的property来转发这才是正规做法。5.2 一个经典血泪案例动画卡顿与内存抖动我遇到过这样一个案例某跨平台设备面板项目在QML里做了一个二维码生成扫码动画区域每100毫秒刷新一次位图。在开发机上流畅无比一上低配工控设备就卡得离谱。排查后锁定在两个问题一是每次刷新都new了一个新的Image源data:的Base64字符串导致线程频繁分配大片内存二是动画控件和周围的阴影特效叠加引起了整个Layer过多的重绘。最后解决方案很直接把实时生成的二维码帧放到真正需要变化的局部Rectangle里外层的阴影改为切图预生成同时把刷新频率从100ms拉高到500ms视觉上变化并不明显CPU占用却下降了一大半。这个案例想表达的是QML的优化不见得真的要用什么高级技巧而是先想清楚“目标屏幕上每一帧到底哪里变了”。只让变化的部分更新其余部分不动这既是性能优化的大原则也是调试复杂界面问题的思考起点。5.3 排查工具怎么用debug和console的实战搭配Qt Creator自带的调试工具足够应付绝大部分问题。第一招是console.log()在QML里你可以直接在任意函数里输出字符串和对象注意区分“QML调试输出”和“C调试输出”两个窗口否则内容混着看会疯掉。第二招是用QML Profiler查看每帧的渲染时长和CPU消耗位置尤其适合找“哪个组件的动画卡成狗”。个人习惯是先把Profiler录一段操作然后看TimeLine上哪段函数最宽往下钻基本就是瓶颈所在。第三招是开启Qt Quick的渲染调试QML_BAD_GUI_RENDER_LOOP1 QSG_VISUALIZEoverdraw QSG_RENDER_LOOPbasic设置这些环境变量后再启动程序界面会显示高亮色区分实际重绘区域——哪些是真正重画的、哪些只是重复提交的一目了然。这套组合拳我在多个项目里都用得很顺手。6. 进阶方向学完本轮教程后还能往哪走视频教程主线结束前我额外留了一整节的“拓展题”。这些拓展题不讲具体代码而是抛出思路和方向让有兴趣的同学自己动手去实验。第一个方向是自定义绘制。QML里你可以用Canvas组件画完全自定义的图形和图表C侧可以用QQuickPaintedItem做自定义绘制item这些对图表类应用、监控大屏、产品定制设备非常有用。我自己的倾向是能用Canvas做的效果尽量Canvas做毕竟C自定义item的跨平台重绘细节更多维护成本更高。第二个方向是Qt Quick 3D。如果你以为Qt Quick只能做2D界面就太可惜了Qt Quick 3D可以做出相当不错的3D产品展示和控制界面。不过入门阶段不建议碰先稳住2D布局和交互思维。第三个方向是嵌入式与触摸设备。我使用Qt Quick做触摸设备项目的时候意识到它与传统桌面常规交互差异明显触摸把hover丢失了、点击命中区域必须扩大、手势滑动要自己处理。这些经验我会在后续的进阶课程里展开但基础不牢的话不建议提前往这个方向扎。第四个值得一提的方向是跨平台周边生态。同一套QML界面顺势编译到多个桌面操作系统再配合各平台的打包脚本就可以获得一整套覆盖较广的桌面产品矩阵。目前我在自己的工具类小项目上就用这套流程同时维护几套不同桌面的版本日常维护成本确实比想象中低。说到最后我个人在实际录制和开发中的体会是Qt Quick的上手曲线其实比很多人想象的平滑但前提是别把它当成“另一个HTMLCSS”来学。QML的精髓在于“状态驱动界面”它的属性绑定和信号机制是一等公民。多写、多调试、多对比“命令式”和“声明式”思路的差别你会慢慢找到“界面在替你思考”的手感。前三个月能沉住气把基础章节的每一个demo自己敲一遍、改一遍折腾出新效果的后面学什么都会顺手很多。

相关新闻

C++跨平台开发全流程实战:从CMake构建到多端打包

C++跨平台开发全流程实战:从CMake构建到多端打包

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 1:32:23 阅读更多 →
RANSAC到NG-RANSAC:从随机采样到可微引导的鲁棒估计演进

RANSAC到NG-RANSAC:从随机采样到可微引导的鲁棒估计演进

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 1:31:23 阅读更多 →
C++数据类型详解:从整型到浮点型的精度陷阱与类型转换实战

C++数据类型详解:从整型到浮点型的精度陷阱与类型转换实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 1:31:23 阅读更多 →

最新新闻

C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失

C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失

目录 解决方案 方法1:使用 SchemaFilter ‌1、创建自定义 SchemaFilter‌ ‌2、在 Swagger 配置中使用该 Filter‌ 方法2:使用 OperationFilter 或 DocumentFilter 1、‌创建自定义 OperationFilter 2、在 Swagger 配置中使用该 Filter 总结 如果…

2026/10/18 3:55:22 阅读更多 →
GLM-Turbo(龙虾模型)API接入指南:Python调用、参数调优与实战

GLM-Turbo(龙虾模型)API接入指南:Python调用、参数调优与实战

最近AI圈里有个很热的称呼叫“龙虾模型”,对应的其实就是GLM-Turbo这个系列。很多人一听到这名字就懵,甚至以为是哪个海鲜行业的图像识别模型,但实际它是一个大语言模型,主打的是中文对话、写作、代码生成和知识问答。我这阵子正好…

2026/10/18 3:55:22 阅读更多 →
iOS WebRTC示例解析:从信令到渲染跑通音视频通话链路

iOS WebRTC示例解析:从信令到渲染跑通音视频通话链路

简介:面向iOS开发者的WebRTC集成示例工程,基于Objective-C实现同类应用间的实时音视频通话,适合希望掌握WebRTC核心流程与原生设备适配的移动端工程师入门参考。压缩包共24个文件,包含7个m源码、5个h头文件、3个plist配置&#xf…

2026/10/18 3:55:22 阅读更多 →
Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测

Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测

Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 银行 App 一打开就闪退&am…

2026/10/18 3:55:22 阅读更多 →
Spring AI集成大模型:Java开发者最佳实践指南

Spring AI集成大模型:Java开发者最佳实践指南

Spring AI:Java开发者的人工智能集成利器先说一个这两年技术圈里特别明显的变化:以前说到AI开发,大家默认是Python的天下,Java程序员只能站在旁边看热闹,顶多通过HTTP接口调一下别人封装好的服务。但从2024年开始&…

2026/10/18 3:55:22 阅读更多 →
SpringBoot3断代升级实战:从零搭建到部署的完整指南

SpringBoot3断代升级实战:从零搭建到部署的完整指南

前两周帮某电商团队做技术迁移评审,对方项目经理一上来就问:能不能在 SpringBoot2.7 基础上直接改版本号升到 3?我当时就告诉他:这可不是改一行版本号的事。编译直接红一片,javax消失,Tomcat行为变了&#…

2026/10/18 3:54:22 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →