2009-05-07 6 views
4

코드 구현은 요구하지 않지만 GTK +의 스킬 셋을 사용하면 추상적 인 관점에서 각 사각형을 클릭 할 수있는 그리드를 구현하는 가장 좋은 방법은 무엇입니까?GTK +에서 격자 만들기

답변

5

개인적으로 이렇게하려면 테이블 http://library.gnome.org/devel/gtk/stable/GtkTable.html을 사용하고 단추 http://library.gnome.org/devel/gtk/stable/GtkButton.html으로 채 웁니다. 단추처럼 보이지 않게하려면 거기에서 기복을 설정합니다. - http://library.gnome.org/devel/gtk/stable/GtkButton.html#gtk-button-set-relief - 없음.

이렇게하면 그리드의 항목을 클릭 할 때 각 요소의 크기가 같고 이벤트가 트리거되는 표가됩니다.

위 그림에서는 그리드에 둘 이상의 행이 있다고 가정합니다. 한 행만 사용하려는 경우 GtkHButtonBox - http://library.gnome.org/devel/gtk/stable/GtkHButtonBox.html - 또는 GtkVButtonBox - http://library.gnome.org/devel/gtk/stable/GtkVButtonBox.html을 사용하는 것이 더 나을 것입니다.

0

그리드의 주요 조직에 GtkTable을 사용하는 두 번째 mlowen의 제안으로 그리드와 유사한 모양을 만드는 것이 매우 쉽습니다. 또한 버튼의 기본 제공 도면이 필요하지 않은 경우 각 셀을 일반 GtkEventBox으로 채우는 방법을 조사 할 수 있습니다.

eventbox는 보이지 않는 위젯으로 기본적으로 창을 추가하고 덮는 부분을 클릭 할 수있게합니다. GTK +의 다른 경우 "자동"위젯을 더 대화식으로 만드는 것이 유용합니다. 예를 들어 GtkLabel 뒤에 일반적으로 사용되어 클릭 할 수있게하는 등의 일을합니다. 라벨이 귀하의 필요에 따라 충분한 드로잉 기능을 제공한다면 그것은 계속 될 수 있습니다.

5

그리드가 커지면 GtkTreeView을 고려해 볼 수도 있습니다.

나무를 격자로 표시하고 사각형 선택을 지원합니다. 셀은 푸시 버튼, 토글, 옵션 메뉴, 진행 막대 등과 같은 텍스트, 숫자 및 간단한 위젯을 표시 할 수 있습니다. 큰 데이터 세트 (수천 행)에서도 잘 수행되고 열 정렬과 같은 멋진 기능을 제공합니다.

는 API 그것은 전체 MVC의 일이고 잘 작동을 얻을 수에 대해 조금 파고 소요 :-(하지만 다소 복잡

GTK-데모에 몇 가지 예제 코드가있다 :.은 "편집 가능한 셀」를 봐 "트리보기"에서 데모.