将文本框的字符更改为下一个字符

时间:2012-09-15 13:51:41

标签: c++ qt

在Qt中,我想创建一些能够显示char输入的下一个字符的内容。

例如,我在QTextEdit中输入'a',它在另一个QTextEdit中自动变为'b',当我再次输入'b'时,它变为'c'。哪种算法适用于此?

2 个答案:

答案 0 :(得分:0)

如评论中所述,您希望执行以下操作(不是代码):

  1. 检测第一个输入框中的更改
  2. 决定如何在给定第一个文本框的值的情况下修改第二个文本框
  3. 更新第二个文本框
  4. 第2步可能(来自你的例子)确保文本有多个字符,假设它是一个std :: string,得到text[text.length() -1],第3步可能是得到第二个文本的文本框,附加该字符并指定它。

    这适用于可修改或不可修改的第二个文本框,因为它不会重新修改字符串中的每个字符 - 只是添加的字符。

    但是,你需要明确定义你想要发生的事情。

答案 1 :(得分:0)

如果您可以直接修改字符,则可以设置每个字符tChar = iChar + 1。如果你输入的不是字母(空格或输入键),它会有点不稳定。在这种情况下,你用if (iChar >= 'a' && iChar <= 'Z') {包装它,它使用'n'语法来对实际的数字代码进行别名。另一种方法是子类化Qtextedit控件并重载void Qtextedit::keyReleaseEvent(QKeyEvent* event)虚函数以拦截击键并检查这种方式。比较是类似的,但是您使用Qt :: Key_A而不是'a'来检查它是否为字母键,然后适当地修改生成的字符。

另请参阅:http://doc.qt.nokia.com/4.7-snapshot/qtextedit.html