0

Qtでは、char入力の次のcharを表示するものを作成したいと思います。

たとえば、QTextEditに「a」と入力すると、別のQTextEditでは自動的に「b」に変わり、もう一度「b」と入力すると「c」に変わります。これに最適なアルゴリズムはどれですか?

4

2 に答える 2

0

文字を直接変更できる場合は、各文字をのように設定できますtChar = iChar + 1。文字以外のもの(スペースまたはEnterキー)を入力すると、少し不安定になります。その場合if (iChar >= 'a' && iChar <= 'Z') {は、「n」構文を使用して実際の番号コードをエイリアスするようにラップします。もう1つの方法は、Qtexteditコントロールをサブクラス化し、void Qtextedit::keyReleaseEvent(QKeyEvent* event)仮想関数をオーバーロードしてキーストロークをインターセプトし、その方法を確認することです。比較は似ていますが、「a」の代わりにQt :: Key_Aを使用して文字キーであることを確認し、結果の文字を適切に変更します。

参照:http ://doc.qt.nokia.com/4.7-snapshot/qtextedit.html

于 2012-09-15T16:48:12.967 に答える
0

コメントで述べたように、次のことを実行する必要があります (コードではありません)。

  1. 最初の入力ボックスの変更を検出する
  2. 最初のテキスト ボックスの値に基づいて、2 番目のテキスト ボックスを変更する方法を決定する
  3. 2 番目のテキスト ボックスを更新する

ステップ2は(あなたの例から)テキストに複数の文字があることを確認することであり、それがstd :: stringであると仮定すると、取得text[text.length() -1]し、ステップ3は2番目のテキストボックスのテキストを取得し、その文字を追加して割り当てます.

これは、文字列内の各文字を再変更するのではなく、追加された文字のみを変更するため、変更可能または変更不可能な 2 番目のテキスト ボックスで機能します。

ただし、何を実現したいかを明確に定義する必要があります。

于 2012-09-15T15:07:34.773 に答える