
桌面应用跨平台【免费下载链接】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),仅供参考