私はGTK + 3を使ってStack Exchangeチャット用のアプリケーションを書いています。実際にメッセージを表示するためにどのコンポーネントが一般的に使用され、推奨されているのか不思議でした。GTK + 3でStack Exchangeチャットアプリケーションを書くときに、メッセージを表示するにはどうすればよいですか?
私のオプションは、WebKit(簡単なHTMLレンダリング用)、GtkListBox(簡単なリスト管理用)、その他のものです。この場合、何が最良の選択でしょうか?
私はGTK + 3を使ってStack Exchangeチャット用のアプリケーションを書いています。実際にメッセージを表示するためにどのコンポーネントが一般的に使用され、推奨されているのか不思議でした。GTK + 3でStack Exchangeチャットアプリケーションを書くときに、メッセージを表示するにはどうすればよいですか?
私のオプションは、WebKit(簡単なHTMLレンダリング用)、GtkListBox(簡単なリスト管理用)、その他のものです。この場合、何が最良の選択でしょうか?
(ListBoxの場合)数万に上る可能性のあるウィジェットを追加することは、通常は良い考えではありません。 text widgets(TextView、TextBufferなど)を見てみましょう:強力な書式設定により、レンダリングの可能性がかなり高くなり、数万のメッセージがあってもかなりパフォーマンスが向上します。 Polari IRCクライアントのchatview(例:screenshots)を参照してください。
これは誤解を招くものだと思います。ツリービューには、ListBoxのような標準コンテナの機能はありません。 – jku
@jku私はあなたのケースで*を言ったことに注意してください。私が質問を正しく読むと、メッセージをどのように表示するかが尋ねられました。 CellRendererText(https://developer.gnome.org/gtk3/stable/GtkCellRendererText.html)を使用すると、TreeviewとListstoreはこの目的には十分適しています。 – theGtknerd
これはStack Exchangeチャットであり、私はstarring/editing/flags/etcを処理する必要があるため、TextBuffer/TextViewが動作しないと思います。 –
さて、実際の要件がなければ、これは答えが広すぎます。 TextBufferタグは、見た目よりも強力です。一例として、極座標TextViewの多くの部分がクリック可能である。例えば。ニックネームをクリックすると、ユーザーに関連するより多くのUIを持つポップオーバーが表示されます。また、GtkImagesやGtkButtonなどの子ウィジェットをテキストビューに追加することもできます(gtk_text_view_add_child_at_anchor()を参照)。 – jku
それは実際にはかなりクールだ、私はそれを試みるかもしれない。 –