何を言っても感情をまったく表情に表に出さない人と話しているようで、とてもストレスフルである。そこで、本稿では以下の機能を実装してみることにする。モードの状態をステータスバーに表示するには、状態をなんらかの方法でステータスバーに伝達しなくてはいけない。あるので、これを利用する。このシグナルはモードが変化した時にエミット(発行)されるものとする。モードが変化した場合は上記のシグナルを発行するように修正する。モードを引数と付けないことにした。定義しているヘッダファイルのインクルードが必要になる。するとインクルード依存性が生じてしまうので、引数は付けないことにした。前方宣言すればいいのかと期待したがうまくコンパイルできなかった。いい回避方法を知ってる人はご教授して欲しい。次にモードをステータスバーに表示するようにしてみよう。モードが変わったことの認識が可能になる。シグナルとコネクトされるのでスロットにしておく。定義は以下のようにすればおk。}以上の修正で、下図の様に挿入モード・コマンドモードのどちらであるかをステータスバーに表示できるようになった。通常、ユーザはカーソル位置を注視しているから、モードを確認するためにステータスバーを見るには視線を移動しなくてはいけない。テニスではボールから視線を外さずに打つことが肝要である。相手のポジションを確認するときに視線がボールから外れてしまい、ミスをすることが多い。視線をボールから外さずに相手のポジションを確認するようにしないといけない。コマンドモードの場合はカーソル形状を変えるようにし、視線を移さなくてもモードを確認可能にしてみる。その方がやっぱり楽だもん。幅が指定出来るだけである。挿入モードは幅最小なので、コマンドモードではカーソル位置文字幅に設定してみることにする。用意し、その中でカーソル幅をカーソル位置テキスト幅に設定する。コードは以下のようになる。}4行目で、テキストカーソルを取得し、アンカーを固定して右移動することでカーソル位置文字を選択する。半角空白幅を取得している。幅を指定して一丁上がりだ。テキストカーソル幅を文字幅にしたために、カーソルがカーソル位置文字を覆い尽くしてしまい、文字の判別が困難になってしまった。この問題の対処は後で画面描画を自前で行うようにするときに対処することとする。シグナルを処理すれば、モードによりカーソル幅を変えることができるぞ本稿のソースコードは以下からDLできます。プロジェクトを作成しています。次へ技術文章>qvi。