首页/新闻资讯/正文详情

NodeGui InputDialogOptions 枚举详解:用位标志定制 QInputDialog 输入对话框行为

发布时间:2026/9/25 5:09:13 来源:云帆数科 栏目:资讯中心
NodeGui InputDialogOptions 枚举详解:用位标志定制 QInputDialog 输入对话框行为
桌面应用跨平台【免费下载链接】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点击查看免费下载导读InputDialogOptions是 NodeGui基于 Qt 的跨平台 Node.js 原生桌面应用库中用于定制QInputDialog模态输入对话框行为的一组选项枚举。通过QInputDialog.setOptions()方法你可以控制对话框是否显示确定/取消按钮、下拉列表项以何种控件呈现、文本输入框采用普通单行编辑框还是多行纯文本编辑框。阅读本文后你将掌握该枚举每个成员的确切取值与语义、在 QInputDialog 中的使用方法以及它与InputMode等其他配置的配合关系。枚举定义与成员取值InputDialogOptions在 TypeScript 侧定义于 src/lib/QtWidgets/QInputDialog.ts其完整定义如下export enum InputDialogOptions { NoButtons 1, UseListViewForComboBoxItems 2, UsePlainTextEditForTextInput 3, }该枚举作为QInputDialog的选项集使用三个成员及对应数值如下表枚举成员数值语义NoButtons1不显示任何按钮确定/取消对话框通过其他方式关闭UseListViewForComboBoxItems2组合框ComboBox模式下的候选项使用QListView展示UsePlainTextEditForTextInput3文本输入使用QPlainTextEdit多行纯文本而非单行QLineEdit需要注意的是从枚举成员取值上看1、2、3它们并不严格遵循二进制的位标志约定——在 NodeGui 的 TS 定义中它们是普通序号值而对应的 Qt 原生类型QInputDialog::InputDialogOptions定义于 qinputdialog_wrap.cpp 的 C 侧作为标志位组合使用。各成员的作用与适用场景NoButtons (1)隐藏对话框内置的 OK / Cancel 按钮。适合由外部逻辑控制关闭时机、需要完全自绘交互区域的场景或与快捷键、外部按钮配合使用。UseListViewForComboBoxItems (2)当输入模式为列表选择ComboBox时用QListView呈现所有候选条目适合候选列表较长、需要滚动浏览的场景。UsePlainTextEditForTextInput (3)文本输入模式改用多行QPlainTextEdit适合输入多行内容如备注、日志、多行配置的场景。在 QInputDialog 中的使用方法InputDialogOptions通过QInputDialog的setOptions()/options()方法读写这两个方法在 src/lib/QtWidgets/QInputDialog.ts 中封装options(): InputDialogOptions { return this.native.options(); } setOptions(value: InputDialogOptions): void { this.native.setOptions(value); }在 C 侧qinputdialog_wrap.cpp 将 JS 数字直接转换为 Qt 原生类型并调用底层QInputDialog::setOptions()Napi::Value QInputDialogWrap::setOptions(const Napi::CallbackInfo info) { Napi::Env env info.Env(); auto value info[0].AsNapi::Number().Int32Value(); this-instance-setOptions( static_castQInputDialog::InputDialogOptions(value)); return env.Null(); }基本用法示例import { QInputDialog, InputDialogOptions, InputMode } from nodegui/nodegui; const dialog new QInputDialog(); dialog.setLabelText(请输入备注内容); dialog.setInputMode(InputMode.TextInput); dialog.setOptions(InputDialogOptions.NoButtons | InputDialogOptions.UsePlainTextEditForTextInput); dialog.exec(); console.log(dialog.textValue());要点说明setOptions()接受InputDialogOptions类型的值多个选项可通过|位或运算组合与 Qt 标志位语义一致设置选项后通过options()可读取当前生效的选项值选项在exec()打开对话框前设置才生效。与 InputMode 的配合QInputDialog的输入行为主要由 InputMode 决定它同样定义在 src/lib/QtWidgets/QInputDialog.tsexport enum InputMode { TextInput 0, IntInput 1, DoubleInput 2, }InputMode决定对话框收集什么类型的数据文本、整数还是浮点数而InputDialogOptions决定这些输入控件如何呈现。例如TextInputUsePlainTextEditForTextInput多行文本输入IntInput/DoubleInputNoButtons无按钮的数字输入面板配合信号在值变化时实时读取。InputMode通过 setInputMode() 传入同样以数字形式映射到底层 Qt 枚举。信号与选项的运行时联动选项改变控件形态后对话框的值变化仍会通过 Qt 信号桥接回 JS。在 ninputdialog.hpp 中NInputDialog将 Qt 的六个信号doubleValueChanged、doubleValueSelected、intValueChanged、intValueSelected、textValueChanged、textValueSelected逐一连接到 NodeGui 的事件发射器。TypeScript 侧对应接口定义在 QInputDialogSignalsexport interface QInputDialogSignals extends QDialogSignals { doubleValueChanged: (value: number) void; doubleValueSelected: (value: number) void; intValueChanged: (value: number) void; intValueSelected: (value: number) void; textValueChanged: (text: string) void; textValueSelected: (text: string) void; }这意味着当NoButtons生效时你可以监听textValueChanged/intValueChanged等信号在无按钮界面下实现实时取值或自定义关闭逻辑。代码实践无按钮的实时输入对话框以下完整示例演示InputDialogOptions的典型用法——一个不显示按钮、实时反馈输入内容的对话框import { QInputDialog, InputMode, InputDialogOptions } from nodegui/nodegui; import { QMainWindow } from nodegui/nodegui; const win new QMainWindow(); win.setWindowTitle(InputDialogOptions 演示); const dialog new QInputDialog(win); dialog.setLabelText(输入内容右侧实时显示); dialog.setInputMode(InputMode.TextInput); dialog.setOptions(InputDialogOptions.NoButtons | InputDialogOptions.UsePlainTextEditForTextInput); dialog.addEventListener(textValueChanged, (text) { console.log(当前输入, text); }); dialog.exec();结合信号监听即使隐藏了按钮也可以在用户输入过程中实时获取数据或由外部按钮调用dialog.close()完成关闭。小结InputDialogOptions定义于 src/lib/QtWidgets/QInputDialog.ts三个成员分别控制按钮显隐、下拉列表渲染方式与文本输入控件类型通过 setOptions() 应用选项底层由 qinputdialog_wrap.cpp 桥接到 Qt 原生QInputDialog::setOptions()选项通常与InputMode文本/整数/浮点组合使用并结合textValueChanged、intValueChanged等信号实现无按钮实时交互相关完整类参考见 QInputDialog 类文档全局导出位于 src/index.ts。赞分享桌面应用跨平台【免费下载链接】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点击查看免费下载相关推荐TypeScript 枚举完全指南数字枚举、标志位、字符串枚举与 const 枚举实战解析TypeScript 枚举完全指南数字枚举、标志位、字符串枚举与 const 枚举实战解析 TypeScript 为 JavaScript 引入了 enum教程WSL 容器 API 枚举详解WslcContainerFlags 标志位全解析与实战用法WSL 容器 API 枚举详解WslcContainerFlags 标志位全解析与实战用法 导读 WslcContainerFlags 是 WSL 容器WS操作系统虚拟化系统编程网络WSL WSLC C APIWslcContainerStartFlags 枚举详解——用启动标志控制容器初始化进程的 I/O 附着行为WSL WSLC C APIWslcContainerStartFlags 枚举详解——用启动标志控制容器初始化进程的 I/O 附着行为 本文围绕 Windo操作系统虚拟化系统编程网络上一篇探索高效直播体验Streamlink Twitch GUI - 超越浏览器的观看新方式下一篇推荐使用Ion.RangeSlider - 灵活强大的范围滑块插件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

探索Docker的无限可能:Docker Tutorials 和 Labs
探索Docker的无限可能:Docker Tutorials 和 Labs

探索Docker的无限可能:Docker Tutorials 和 Labs 项目介绍 Docker Tutorials and Labs 是一个由Docker官方与社区成员共同创建的资源库,旨在帮助初学者和经验丰富的开发者深入了解并熟练使用Docker。虽然目前不再积极添加新的实验到这个仓库&#xff0… · 2026/9/25 5:09:12

长期优选!2026开箱即用低门槛openclaw/龙虾平台推荐排行:TaoToken统一Key接入与config.toml骨架实测
长期优选!2026开箱即用低门槛openclaw/龙虾平台推荐排行:TaoToken统一Key接入与config.toml骨架实测

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

统一身份认证系统技术方案:单点登录、CA认证与落地避坑指南
统一身份认证系统技术方案:单点登录、CA认证与落地避坑指南

简介:这份《统一身份认证系统技术方案》PDF面向系统架构师、后端开发与信息安全从业者,围绕统一认证与授权管理场景,提供从总体设计到产品落地的完整技术参考。内容涵盖设计原则与目标、系统部署、统一认证管理系统详细架构,并逐项… · 2026/9/25 5:09:06

【电路设计】常开和常闭开关/接触器 如何选?
【电路设计】常开和常闭开关/接触器 如何选?

在电路设计中经常碰见常开和常闭的开关或者接触器,本文将会简要按照我的理解说明一下常开,常闭的选择依据。常开常闭其实在正常的工况下没有什么过大的区别,但是在某些故障场景,常开和常闭就是非常重要的选择。常开:在… · 2026/9/25 5:35:56

工具调用已足够,现在基于 pkg/testing/README.md 及其源码完成文章编写。
工具调用已足够,现在基于 pkg/testing/README.md 及其源码完成文章编写。

编程语言编译器语言运行时标准库开发工具 【免费下载链接】sdk The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more. 项目地址&#xff1a; https://gitcode.com/gh_mirrors/sdk1/sdk 点击查看 免费下载 <output文章> Dart S… · 2026/9/25 5:35:50

WeiXinMPSDK 高级接口实战指南:AppId 与 AccessToken 的自动识别调用机制
WeiXinMPSDK 高级接口实战指南:AppId 与 AccessToken 的自动识别调用机制

后端即时通讯金融科技 【免费下载链接】WeiXinMPSDK 微信全平台 .NET SDK&#xff0c; Senparc.Weixin for C#&#xff0c;支持 .NET Framework 及 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 … · 2026/9/25 5:35:44

【Dify】智能简历筛选与语义分析应用
【Dify】智能简历筛选与语义分析应用

自动化与智能化简历筛选已成为招聘流程提升效率的重要方向。简历文件数量庞大、信息结构多样,传统人工处理耗时费力,容易出现筛选误差。 本文介绍一种基于多模型与自动化节点的智能简历筛选工作流,覆盖批量导入、文本抽取、结构化分析到语义筛查与结果导出,助力高效实现精… · 2026/9/25 5:35:44

rsuite Avatar 头像组件 bordered 边框属性实战指南:从示例到源码实现
rsuite Avatar 头像组件 bordered 边框属性实战指南:从示例到源码实现

前端UI组件 【免费下载链接】rsuite &#x1f9f1; A suite of React components . 项目地址&#xff1a; https://gitcode.com/gh_mirrors/rs/rsuite 点击查看 免费下载 导读 bordered 是 rsuite Avatar&#xff08;头像&#xff09;组件自 5.59.0 版本起提供的属性&#x… · 2026/9/25 5:35:44

基于昇腾Atlas 300V 24G的YOLO模型部署与调优实践
基于昇腾Atlas 300V 24G的YOLO模型部署与调优实践

如果你在网上搜“atlas部署yolo”&#xff0c;大概率会刷到一堆华为昇腾的官方文档和别人的踩坑记录。但说句实在话&#xff0c;很多人第一次拿到Atlas 300V 24G这块卡的时候&#xff0c;连它到底算不算显卡都没搞明白。我先直接回答那个被问烂了的问题&#xff1a;它是运算加速… · 2026/9/25 5:35:38

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码