2017-01-24 1 views
2

私はGTK + 3を使ってStack Exchangeチャット用のアプリケーションを書いています。実際にメッセージを表示するためにどのコンポーネントが一般的に使用され、推奨されているのか不思議でした。GTK + 3でStack Exchangeチャットアプリケーションを書くときに、メッセージを表示するにはどうすればよいですか?

私のオプションは、WebKit(簡単なHTMLレンダリング用)、GtkListBox(簡単なリスト管理用)、その他のものです。この場合、何が最良の選択でしょうか?

答えて

2

(ListBoxの場合)数万に上る可能性のあるウィジェットを追加することは、通常は良い考えではありません。 text widgets(TextView、TextBufferなど)を見てみましょう:強力な書式設定により、レンダリングの可能性がかなり高くなり、数万のメッセージがあってもかなりパフォーマンスが向上します。 Polari IRCクライアントのchatview(例:screenshots)を参照してください。

+0

これはStack Exchangeチャットであ​​り、私はstarring/editing/flags/etcを処理する必要があるため、TextBuffer/TextViewが動作しないと思います。 –

+2

さて、実際の要件がなければ、これは答えが広すぎます。 TextBufferタグは、見た目よりも強力です。一例として、極座標TextViewの多くの部分がクリック可能である。例えば。ニックネームをクリックすると、ユーザーに関連するより多くのUIを持つポップオーバーが表示されます。また、GtkImagesやGtkButtonなどの子ウィジェットをテキストビューに追加することもできます(gtk_text_view_add_child_at_anchor()を参照)。 – jku

+0

それは実際にはかなりクールだ、私はそれを試みるかもしれない。 –

1

あなたはツリービューを考えましたか? A TreeviewListStoreは、セットアップと管理が非常に簡単で、あなたのケースではリストボックスのすべての機能を備えています。

+0

これは誤解を招くものだと思います。ツリービューには、ListBoxのような標準コンテナの機能はありません。 – jku

+0

@jku私はあなたのケースで*を言ったことに注意してください。私が質問を正しく読むと、メッセージをどのように表示するかが尋ねられました。 CellRendererText(https://developer.gnome.org/gtk3/stable/GtkCellRendererText.html)を使用すると、TreeviewとListstoreはこの目的には十分適しています。 – theGtknerd

関連する問題