新闻详情

新闻详情

首页 / 资讯中心 / 详情

NodeGui 中 QFontCapitalization 字体大小写样式枚举:5 个取值、绑定原理与实战用法

发布时间:2026/9/25 2:56:16来源:尧图网络
NodeGui 中 QFontCapitalization 字体大小写样式枚举:5 个取值、绑定原理与实战用法
桌面应用跨平台【免费下载链接】nodeguiA library for building cross-platform native desktop applications with Node.js and CSS . React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org项目地址https://gitcode.com/gh_mirrors/no/nodegui点击查看免费下载本篇技术指南围绕 NodeGui 的QFontCapitalization枚举展开它是QFont字体对象上用于控制文本大小写呈现样式的参数类型贯穿 TypeScript 定义、N-API 原生绑定与 Qt 底层渲染三层。读完本文你将掌握该枚举全部 5 个成员的确切数值与含义、它在仓库中的定义位置、与QFont.setCapitalization()/capitalization()的调用链路以及如何在实际界面代码中用它调整字体文本的呈现方式。一、枚举成员总览5 个取值及其数值QFontCapitalization共定义 5 个成员其数值与 Qt 的QFont::Capitalization枚举保持一致。完整成员列表如下与自动生成文档 qfontcapitalization.md 一一对应成员名数值语义MixedCase0混合大小写按文本原始形式呈现默认样式AllUppercase1全部以大写字母呈现AllLowercase2全部以小写字母呈现SmallCaps3小型大写字母small caps效果Capitalize4每个单词首字母大写在 NodeGui 的 TypeScript 层该枚举被显式定义为带数值的enum见 QFont.tsexport enum QFontCapitalization { MixedCase 0, AllUppercase 1, AllLowercase 2, SmallCaps 3, Capitalize 4, }这里采用显式赋值而非依赖自增是有意的工程决策原生绑定层直接以 32 位整数值与 Qt 枚举做static_cast互转见下文第三节因此 TS 侧数值必须与 Qt 的QFont::Capitalization逐一对齐显式写出数值可以避免隐式自增带来的漂移风险。该枚举通过包入口对外导出可从nodegui直接按需导入见 index.tsexport { QFont, QFontCapitalization, QFontStretch, QFontWeight } from ./lib/QtGui/QFont;二、枚举的消费方QFont.setCapitalization 与 capitalizationQFontCapitalization并非独立使用它作为参数与返回值类型服务于QFont的两个方法。TypeScript 层定义见 QFont.tssetCapitalization(caps: QFontCapitalization): void { this.native.setCapitalization(caps); } capitalization(): QFontCapitalization { return this.native.capitalization(); }两个方法均为“薄封装”直接转发到编译后的原生 addonthis.native。与之配合的还有 QFont 类文档 中列出的setFamily、setPointSize、setWeight、setItalic、setStretch等字体属性方法共同构成 NodeGui 中字体外观配置的完整 API 面。三、绑定层源码解析数字如何在 JS 与 C 之间穿越该枚举的底层实现位于 N-API 绑定层。在 qfont_wrap.cpp 中可以看到 setter 与 getter 的完整实现Napi::Value QFontWrap::setCapitalization(const Napi::CallbackInfo info) { Napi::Env env info.Env(); QFont::Capitalization caps static_castQFont::Capitalization( info[0].AsNapi::Number().Int32Value()); this-instance-setCapitalization(caps); return env.Null(); } Napi::Value QFontWrap::capitalization(const Napi::CallbackInfo info) { Napi::Env env info.Env(); return Napi::Value::From(env, static_castint(this-instance-capitalization())); }从源码结构看这条调用链非常直接JS 侧传入的QFontCapitalization数值如SmallCaps即3先被Napi::Number读取为Int32Value通过static_castQFont::Capitalization转为 Qt 枚举调用 Qt 的QFont::setCapitalization()getter 方向则把 Qt 返回的枚举static_castint还原为 JS 数字。方法注册同样发生在该文件的类定义处qfont_wrap.cpp方法签名声明见 qfont_wrap.h。这也解释了第一节中数值必须对齐的必要性绑定层没有任何“名字映射”只有纯粹的整型转换。四、实战在 NodeGui 应用中使用大小写样式下面是一个最小可运行的用法示例演示如何构造QFont、设置字体族并应用QFontCapitalizationimport { QMainWindow, QWidget, QLabel, QFont, QFontCapitalization } from nodegui; const win new QMainWindow(); const central new QWidget(); const label new QLabel(nodegui); // 1. 构造字体对象字体族、字号、字重、斜体 const font new QFont(Helvetica, 24, -1, false); // 2. 应用大小写样式此处为小型大写字母 font.setCapitalization(QFontCapitalization.SmallCaps); // 3. 回读当前样式验证设置生效 console.log(font.capitalization()); // 3SmallCaps label.setFont(font); label.setStyleSheet(padding: 12px;); central.setCentralWidget(label); win.setCentralWidget(central); win.resize(320, 160); win.show();几点使用注意new QFont(family, pointSize?, weight?, italic?)的参数签名见 QFont.tspointSize缺省为-1、weight缺省为-1即保持系统默认各大小写样式最终由 Qt 的字体渲染管线实现实际呈现效果取决于底层 Qt 版本与目标平台字体支持情况例如SmallCaps在部分字体下可能退化为普通大写仓库自带的示例代码 modelview_2_formatting.ts 中即出现了new QFont()的用法用于为表格单元格设置加粗字体可作为“先构造 QFont、再 setFont 给控件”这一模式的参考。五、在 API 文档体系中的位置QFontCapitalization属于 NodeGui 自动生成的 API 参考文档中的枚举页同目录下的兄弟枚举还有 QFontStretch、QFontWeight 等它们与 QFont 类文档 共同构成字体配置的完整参考。全局索引见 globals.md。当你通过 IDE 跳转到QFontCapitalization时实际解析到的就是 QFont.ts 中的 TS 枚举定义其文档页则是由该源码自动生成、并与 Qt 枚举数值保持同步的。小结QFontCapitalization是一个小而关键的枚举5 个成员、0 到 4 的数值空间是 NodeGui 字体 API 与 QtQFont::Capitalization之间的桥梁。理解它的数值必须与原生绑定整型转换严格对齐这一约束再结合QFont.setCapitalization()/capitalization()的读写链就能在 Node.js 构建的跨平台桌面界面中用几行 TypeScript 代码精确控制文本的大小写呈现样式。赞分享桌面应用跨平台【免费下载链接】nodeguiA library for building cross-platform native desktop applications with Node.js and CSS . React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org项目地址https://gitcode.com/gh_mirrors/no/nodegui点击查看免费下载相关推荐NodeGui QUrl ParsingMode 枚举详解URL 解析模式的取值、默认值与原生桥接实现NodeGui QUrl ParsingMode 枚举详解URL 解析模式的取值、默认值与原生桥接实现 NodeGui 对 Qt 的 QUrl 类提供了完整的桌面应用跨平台NodeGui PenStyle 枚举详解QPen 与 QPainter 线条样式的完整用法NodeGui PenStyle 枚举详解QPen 与 QPainter 线条样式的完整用法 在 NodeGui 中使用 QPainter 绘图或调整 QTa桌面应用跨平台NodeGui 中 NavigationMode 枚举完整参考成员取值、定义位置与键盘导航模式语义NodeGui 中 NavigationMode 枚举完整参考成员取值、定义位置与键盘导航模式语义 NavigationMode 是 NodeGui 在 Qt桌面应用跨平台上一篇Black等待表达式await关键字的处理下一篇GoogleTest死亡测试断言EXPECT_DEATH_IF_SUPPORTED跨平台兼容实现指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SonarQube自定义规则开发实战:从AST到质量门禁的Java插件指南 2026/9/25 4:11:39

SonarQube自定义规则开发实战:从AST到质量门禁的Java插件指南

简介:压缩包内是一套面向SonarQube平台的Java自定义规则集,供有定制代码检测诉求的开发人员与质量保障人员参考使用。规则覆盖编码规范、潜在缺陷、复杂度等专项检查,能在标准分析之外筛出需人工关注的代码点,配合持续集成流水线中…

阅读更多 →
VSCode配置C语言开发环境:MinGW-w64实战指南 2026/9/25 4:11:32

VSCode配置C语言开发环境:MinGW-w64实战指南

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

阅读更多 →
切比雪夫阶梯阻抗变换器设计:从理论推导到ADS仿真全流程 2026/9/25 4:11:32

切比雪夫阶梯阻抗变换器设计:从理论推导到ADS仿真全流程

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

阅读更多 →
PowerBuilder程序部署与OLEDB跨机连接问题排查实战 2026/9/25 4:11:32

PowerBuilder程序部署与OLEDB跨机连接问题排查实战

简介:一套面向 PowerBuilder Windows 桌面开发者的 VDN 系统测试版安装包,集中演示了消息推送、微信接口、加密解密函数与二维码生成解析等企业级功能模块。项目基于 PowerBuilder 事件驱动模型,借助 PBL 对象库、PBNI 与 .NET 互操作完成扩展…

阅读更多 →
免登录积分商城系统:设备指纹+行为校验的身份锚定方案 2026/9/25 4:11:26

免登录积分商城系统:设备指纹+行为校验的身份锚定方案

简介:这是一套开箱即用的免登录积分兑换商城系统源码,面向中小型商户、社区服务项目及适老化数字产品开发者,解决传统电商需注册登录带来的使用门槛问题,特别适合面向老年用户的轻量级积分激励场景。资源包共2010个文件&#xff0…

阅读更多 →
微信小程序云开发健身房预约系统:从并发控制到完整交付 2026/9/25 4:11:26

微信小程序云开发健身房预约系统:从并发控制到完整交付

如果你正在为课程设计、毕业设计或者实习项目发愁,想找一个业务逻辑完整、能在手机上直接演示、又方便写文档交差的选题,健身房预约系统是个非常合适的切入点。我这两年帮不少同学做过类似的项目,自己也把"基于微信小程序云开发的健身房…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉