Qt之输入对话框(QInputDialog)的相关参数(Qt::InputMethodHints)和(QLineEdit::EchoMode)学习

2023-10-29

本文参考文章
Qt 编程 —— 输入对话框(QInputDialog)的使用 【学习笔记】

前言

QInputDialog类提供了一个简单的便捷对话框,可以从用户那里获取用户录入的单个值。当前Qt提供了五个静态接口函数用于获取常用的数据类型参数:

//单文本输入框
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()
//int类型的接口
int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
//double类型的接口
double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1)
//下拉选择框,单选框获取选中的某一列
QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
//多文本输入框
QString getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

文本框样式 QLineEdit::EchoMode

类型 详细解释
QLineEdit::Normal 默认设置,输入时显示字符。
QLineEdit::NoEcho 不要显示任何内容。这可能适用于密码,即使密码的长度也应保密。
QLineEdit::Password 显示与平台相关的密码掩码字符,而不是实际输入的字符。
(例如输入123456实际显示******)
QLineEdit::PasswordEchoOnEdit 编辑时按输入显示字符,否则按密码显示字符。

输入模式提示Qt::InputMethodHints

类型 详细解释
Qt::ImhNone 不配置,系统默认
Qt::ImhHiddenText 输入法不应在键入时显示字符。将QLineEdit::echoMode设置为密码时,会自动设置此选项。请注意,设置ImhHiddenText不会更改回声模式
Qt::Qt::ImhSensitiveData 键入的文本不应该由活动输入法存储在任何持久性存储中,如预测用户词典。
(英文键盘,输入内容没有下划线,有输入提示)
Qt::ImhNoAutoUppercase 当句子结束时,输入法不应尝试自动切换到大写。
(英文键盘,输入内容没有下划线,有输入提示)
Qt::ImhPreferNumbers 首选数字(但不是必需的)。
(键盘中只有数字0-9,删除和回车)
Qt::ImhPreferUppercase 首选大写字母(但不是必需的)。
(数字+英文全键盘,shift键默认按下,高亮,数字显示不受影响)
Qt::ImhPreferLowercase 首选小写字母(但不是必需的)。
(数字+英文全键盘,shift不按下)
Qt::ImhNoPredictiveText 键入时不要使用预想文本(即字典查找)。
(键盘:0-9,-/:,.回车,空格,删除)
Qt::ImhDate 文本编辑器用作日期字段。
(日期间盘:数字0—9,.-/)
Qt::ImhTime 文本编辑器用作时间字段。
(时间键盘:数字0-9,:)
Qt::ImhPreferLatin 首选拉丁字符(但不是必需的)。
(英文键盘,带有输入提示,如输入g,提示going,带下划线,需回车确认输入)
Qt::ImhMultiLine 可以在文本字段中输入多行。
(英文键盘,带有输入提示,如输入g,提示going,带下划线,需回车确认输入)
Qt::ImhNoEditMenu 不要使用内置的编辑菜单。此标志在Qt 5.11中引入。

案例


QLineEdit::Normal,Qt::ImhNone

QInputDialog *inputDialog = new QInputDialog(this);
bool getInfo;
QString down = inputDialog->getText(this,"输入下降量","请输入下降量",QLineEdit::Normal,"",&getInfo,Qt::WindowFlags(0),Qt::ImhNone);
    if(getInfo){
        s = s.append(down);
        Send(s);
    }

运行截图:
在这里插入图片描述


QLineEdit::Password

QInputDialog *inputDialog = new QInputDialog(this);
bool getInfo;
QString down = inputDialog->getText(this,"输入下降量","请输入下降量",QLineEdit::Password,"",&getInfo,Qt::WindowFlags(0),Qt::ImhHiddenText);
    if(getInfo){
        s = s.append(down);
        Send(s);
    }

在使用QLineEdit::Password时,自动调用了Qt::ImhHiddenText,此时Qt::InputMethodHints位置可默认不填

修改后的代码如下:

QInputDialog *inputDialog = new QInputDialog(this);
bool getInfo;
QString down = inputDialog->getText(this,"输入下降量","请输入下降量",QLineEdit::Password,"",&getInfo,Qt::WindowFlags(0));
    if(getInfo){
        s = s.append(down);
        Send(s);
    }

运行截图:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt之输入对话框(QInputDialog)的相关参数(Qt::InputMethodHints)和(QLineEdit::EchoMode)学习 的相关文章

随机推荐

  • 什么时候开始使用Redis

    思考这个问题的本质就是要学会取舍和选型 技术选型非常重要 大多人为了技术而技术 这是不可取的 就想小彬认为微服务必须解决分布式事务一样 但他却不知道为什么要用分布式事务 从而不知道什么时候要用分布式事务 就想Redis一样 什么时候要用Re
  • jmap 文件解析_干货分享丨jvm系列:dump文件深度分析

    摘要 java内存dump是jvm运行时内存的一份快照 利用它可以分析是否存在内存浪费 可以检查内存管理是否合理 当发生OOM的时候 可以找出问题的原因 那么dump文件的内容是什么样的呢 JVM dump java内存dump是jvm运行
  • 【springboot】如何在自己的springboot项目中引用别的springboot项目jar

    正好今天碰到了 就在这里总结下 习惯了将公用的项目打包成jar 然后当做工具类引入到自己项目中 直接调用 感觉甚是方便 但有没有发现 平时我们引用的大部分情况下是一个maven项目 然后打包好的jar也是maven项目的结构 所以我们可以正
  • VS使用技巧汇总

    总目录 文章目录 总目录 前言 一 快捷技巧 1 代码片段快捷方式 2 选择性粘贴 3 快速停靠窗口 4 多行同步快速编辑 5 引用命名空间 6 整行上下移动 7 快捷键 二 VS功能 1 打开VS自带反编译 2 VS扩展插件 三 其他 总
  • win10远程登录Ubuntu14.04图形化界面

    一 使用场景 因工作原因 需要在window与Linux系统同时操作 由于虚拟机卡顿 十分影响工作效率 于是找领导又申请一台电脑 Ubuntu主机主要日常代码编译与git操作 window主机主要用于日常沟通 资料查询 测试研发 windo
  • go语言重大bug,make缓存读取数据漏洞,4096漏洞

    做一个小程序 需要对文件内容分片读取 但是读取过程中发现数据读取不全 经测试多个make缓存读取文件时发现问题 以下为漏洞测试部分 一 生成测试文件 AAA txt 创建一个AAA txt文件 写入1万个A wFile os OpenFil
  • KMP算法原理

    所有下标从0开始 子串的定位操作通常称为串的模式匹配 它求的是子串 或称模式串 在主串中的位置 前缀 除最后一个字符外 字符串的所有头部子串 后缀 除第一个字符外 字符串的所有尾部子串 部分匹配值 字符串的前缀和后缀的最长相等前后缀长度 字
  • Linux网络编程:多进程 多线程_并发服务器

    文章目录 一 wrap常用函数封装 wrap h wrap c server c封装实现 client c封装实现 二 多进程process并发服务器 server c服务器 实现思路 代码逻辑 client c客户端 三 多线程threa
  • JS 面试题集合(二)

    一 延迟加载 JS 有哪些方式 延迟加载 async defer 例如 defer 等html全部解析完成 才会执行js代码 顺次执行js 脚本 async asyc 是和 html 解析同步的 一起的 不是顺次执行 js 脚本 谁先加载完
  • 破解极验(geetest)验证码

    最近在搞爬虫的时候在好几个网站都碰到了一种叫做geetest的滑动条验证码 一直没有太好的办法只能在触发这个验证码后发个报警去手动处理一下 http www geetest com exp embed是他们官网的样例 后来研究了下觉得要破解
  • FindBugs Bug Descriptions

    FindBugs Bug Descriptions This document lists the standard bug patterns reported byFindBugs version 1 3 9 Summary Descri
  • 【力扣】三数之和

    给你一个包含 n 个整数的数组 nums 判断 nums 中是否存在三个元素 a b c 使得 a b c 0 请你找出所有和为 0 且不重复的三元组 注意 答案中不可以包含重复的三元组 示例 1 输入 nums 1 0 1 2 1 4 输
  • KEIL 生成bin文件

    1 首先对于keil5其编译生成的HEX文件 一般通过勾选如下 在进行ISP烧写时 就可以通过传送HEX文件进行烧写 2 对于烧写而言不仅仅可以通过HEX文件进行烧写 还可以通过BIN文件进行烧写 且BIN文件比HEX文件更小 设置BIN文
  • Rust的内存安全三原则:所有权、借用及生命周期

    我们接下来要探讨的概念是Rust的内存安全及其零成本抽象原则的核心 它们让Rust能够在编译期检测程序中内存安全违规 在离开作用域时自动释放相关资源等情况 我们将这些概念称作所有权 借用和生命周期 所有权有点类似核心原则 而借用和生命周期是
  • 时序预测

    时序预测 MATLAB实现2 DCNN卷积神经网络时间序列预测 目录 时序预测 MATLAB实现2 DCNN卷积神经网络时间序列预测 预测效果 基本介绍 研究背景 模型结构 建模流程 程序设计 学习总结 参考资料 预测效果 基本介绍 一种基
  • Dolby与DTS杜比环绕与DTS环绕音响

    转自 http blog sina com cn s blog a15db8ae0101dlz7 html 杜比环绕与DTS环绕具有的相近之处在于它们都是属于有损的数字压缩技术 这种称为 感性的 数据压缩技术是基于人类心理声学上所具备的听音
  • AndroidStudio运行程序时启动虚拟机出现x86 emulation currently requires hardware acceleration!问题解决方法

    这个问题是没有安装intelhaxm android exe这个软件 找到 SDK安装目录 一般在C盘下C Users admini AppData Local Android Sdk extras intel Hardware Accel
  • C++:采用vector实现二分查找及其变种总结

    主要分为六种情况 闭区间 半开区间 中位值在循环之外的半开区间二分查找首个序列 中位值在循环之外的半开区间二分查找末尾序列 以及中位值在循环之外的完全开区间二分查找首个序列和中位值在循环之外的完全开区间二分查找末尾序列 include
  • 微信小游戏开发之四:使用three.js引擎

    一 前言 微信小游戏中最魔性的 跳一跳 就是基于three js 引擎开发的 看这里 不要再让我发邮箱了 源码放到github上了 GitHub地址 请自行下载 二 下载 three min js 打开页面 复制代码到本地 三 引用 使用如
  • Qt之输入对话框(QInputDialog)的相关参数(Qt::InputMethodHints)和(QLineEdit::EchoMode)学习

    本文参考文章 Qt 编程 输入对话框 QInputDialog 的使用 学习笔记 前言 QInputDialog类提供了一个简单的便捷对话框 可以从用户那里获取用户录入的单个值 当前Qt提供了五个静态接口函数用于获取常用的数据类型参数 单文