在 Qt 中,我想做一些能显示字符输入的下一个字符的东西。
例如,我在 QTextEdit 中输入了“a”,在另一个 QTextEdit 中它会自动变为“b”,当我再次输入“b”时,它会变为“c”。哪种算法最适合这个?
如评论中所述,您想要执行以下操作(不是代码):
第 2 步可能是(从您的示例中)确保文本有多个字符,并且假设它是 std::string,获取text[text.length() -1]
和第 3 步可能是获取第二个文本框的文本,附加该字符并分配它.
这适用于可修改或不可修改的第二个文本框,因为它不会重新修改字符串中的每个字符——只是添加的一个。
但是,您需要清楚地定义您想要发生的事情。
如果可以直接修改字符,则可以将每个字符设置为tChar = iChar + 1
. 如果你输入不是字母的东西(空格或输入键),它会变得有点不稳定。在这种情况下,您将if (iChar >= 'a' && iChar <= 'Z') {
使用“n”语法将其包装为实际数字代码的别名。另一种方法是继承 Qtextedit 控件并重载void Qtextedit::keyReleaseEvent(QKeyEvent* event)
虚函数以拦截击键并检查该方式。比较是相似的,但是您将使用 Qt::Key_A 而不是 'a' 来检查它是否是字母键,然后适当地修改生成的字符。