2017-01-24 5 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 채팅이기 때문에 TextBuffer/TextView가 작동하지 않을 것이라고 생각하며 주연/편집/플래그/등을 처리해야합니다. –

+2

글쎄, 실제 요구 사항이 없이는 대답 하기엔 너무 광범위합니다. TextBuffer 태그는 생각보다 강력합니다. 예를 들어, Polar TextView의 많은 부분을 클릭 할 수 있습니다. 예 : 별명을 클릭하면 사용자와 관련된 UI가 더 많은 팝업이 표시됩니다. 또한 GtkImages 나 GtkButton과 같은 하위 위젯을 텍스트보기에 추가 할 수 있습니다 (예 : gtk_text_view_add_child_at_anchor() 참조). – jku

+0

그건 정말 멋지다. 나는 그것을 시도 할 수도있다. –

1

트 리뷰를 고려하셨습니까? TreeviewListStore은 설치 및 관리가 용이하며 사용자의 경우 Listbox의 모든 기능을 갖추고 있습니다.

+0

나는 이것이 오도 된 생각이다. TreeView에는 ListBox와 같은 표준 컨테이너의 기능이 없습니다. – jku

+0

@jku 나는 당신의 경우 *라고 말했다. 질문을 올바르게 읽으면 메시지를 렌더링하는 방법을 묻습니다. CellRendererText (https://developer.gnome.org/gtk3/stable/GtkCellRendererText.html)를 사용하면 Treeview와 Liststore가이 목적에 적합합니다. – theGtknerd