c++ - QtLineEdit 占位符:如何让用户在插入模式下将字符 1 替换为 1
问题描述
QtLineEdit - C++/Qt Creator 4.9/ Qt 5.12 / Windows 小部件应用程序
tldr:有没有办法防止占位符文本在用户输入时被立即擦除,而是在 INSERT 模式下逐个字符地替换它。
例子:
[ ******** ]
[ a******* ]
[ ab****** ]
这是一个很难研究的问题,因为我得到了很多关于使用相同关键字的完全不同问题的结果。
为了提供一些背景信息,以防有人有一个很好但不同的方法来解决这个问题:
该程序是用于加密货币的个性化公共地址生成器。用户通过编辑占位符来设计所需的地址前缀或后缀。由于生成相应的私钥变得成倍地困难,GUI 设计必须阻止替换更多的占位符字符而不是合理的。但我希望能够决定要编辑的角色位置。
有效用户输入的示例(还有更多内容,但您明白了)
[test****************test]
[testest*****************]
[*****************testest]
这将使所需的输出更容易可视化
谢谢!
解决方案
在这种情况下,您可能希望继承 QLineEdit 并覆盖其输入处理函数之一。特别是,您可以创建一个keyPressEvent(QKeyEvent *event)
调整 QLineEdit 文本的覆盖实现。占位符文本不能永久使用,因为它与模型文本分开处理。
推荐阅读
- python - 如何使用 Jupyter Notebook 中的 Sympy 定义方程、区分和绘制它?
- powerbi - 对切片器使用合并列会导致其他元素中出现空白结果
- python - 如何解析 json.response 字典
- arrays - 将数组的值与打字稿中对象的键同步
- android - 如何从 StreamBuilder 中更新流?
- sql - 如何从需要表作为参数的 Postgresql 函数中进行选择
- nodatime - 解构 ZonedDateTime
- r - 根据 R 中另一个数据帧中给出的条件,用 NA 替换数据帧中的多个值
- python - 我正在尝试制作一个窗口/框架,其中包含允许您单击它的图片
- firebase - Re2 模式错误:我们无法匹配参数