0

在 Qt 中,我想做一些能显示字符输入的下一个字符的东西。

例如,我在 QTextEdit 中输入了“a”,在另一个 QTextEdit 中它会自动变为“b”,当我再次输入“b”时,它会变为“c”。哪种算法最适合这个?

4

2 回答 2

0

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

  1. 检测第一个输入框的变化
  2. 给定第一个文本框的值,决定如何修改第二个文本框
  3. 更新第二个文本框

第 2 步可能是(从您的示例中)确保文本有多个字符,并且假设它是 std::string,获取text[text.length() -1]和第 3 步可能是获取第二个文本框的文本,附加该字符并分配它.

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

但是,您需要清楚地定义您想要发生的事情。

于 2012-09-15T15:07:34.773 回答
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

于 2012-09-15T16:48:12.967 回答