2

ハードウェアの一部をシミュレートしようとしていますが、このハードウェアには静的なリボン表示があります。

これを行うには、TextView を使用したいと思います。私のディスプレイには 10 行、25 列があります。だから私は TextView が十分に簡単であるべきだと考えました。

基本的に、 「列 Y から始まる行 X に文字列 S を挿入/置換する」と言うことができるようにしたいと思います。特定の行、または行内の単一の列のみを更新する必要がある場合があります。

私はこれを機能させることに成功していません。私ができる最善の方法は、TextView を作成するときに 10 行の 25 スペースで埋めてから、 を使用しget_iter_at_line_offsetて行の反復子を取得し、新しいテキストをその行にプッシュすることです。

ただし、これにより、既存のテキストを置き換えるのではなく、行にテキストを追加し始めます。

行と列の両方のコントロールが必要です (つまり、テキストを特定の (X,Y) 座標に設定できる必要があります)。

これは、マークを使用して何らかの形で可能であると想定しています。

誰かがこれを行う方法の簡単な例を教えてもらえますか? 残念ながら、この種のことに関するドキュメントはそれほど多くありません。

4

2 に答える 2

1

特定の行、行Xでイテレータを取得してから、イテレータのforward_chars()メソッドを使用してY文字を前方に移動する必要があります。次に、置き換える文字数を削除し、最後に挿入するテキストを挿入します。イテレータを使用してすべてを行うことができると思います。バッファを変更するとイテレータは無効になりますが、テキストを削除すると、イテレータの1つが再検証されてテキストがあった場所を指します。

于 2012-05-08T06:30:25.410 に答える
0

GTK+ 3.x をターゲットにしている場合は、Cairo の使用を検討する必要があります。実際にはテキスト バッファーは必要ないため、GtkTextView を使用するのはやり過ぎで、少しずれているように思えます。

GTK+ で Cairo を使って描画する方法の非常に基本的な紹介を見てください。次に、テキスト レンダリング Cairo APIを見てください。これで十分に作業を開始できます。

于 2012-05-08T07:54:14.960 に答える