[질문] GTK+ 1.x Scroll Bar

qldpfh의 이미지

한참을 찾아 다니다가 질문을 올려봅니다.
제가 영어가 약해서 공식 레퍼런스 등등을 다 봤는데.. 정말 모르겠어서 질문을 드리는 것이니
바쁘시더라도 조금만 상세히 알려주시면 하는 작은 바램을 가져봅니다.^^

우선 제가 최종적으로 만들려고 하는게 무엇인지 부터 말씀드리겠습니다.
1. 어떠한 글자를 list로 추가한다.
2. 추가된 list를 화면에 표시한다.
3. 표시를 하면서 일반 글자만 표시되는것이 아니라 Button 형식의 그림이 첨부된 or 색이 있는 list를 표시한다.
4. list 표시시 제한된 갯수 (예 5개)를 초과하게 되면 scroll bar를 생성하여 표시되지 않은 부분을 드래그 할수 있게 한다.

위 4가지 기능을 가진 어플을 만들고 싶습니다.^^;
간단하게 설명드리면 MFC or Window App의 List Box 처럼 되어있는 List를 휴대폰에 보면 검색 List를 이쁘게 표시한것처럼
만들고 싶은것이죠.^^;

2.x 버전에 tree를 보라고 하는 말도 검색하면서 보긴했는데요. 전 1.x버전을 사용해야합니다.^^; 그래서 그부분은 검색을 하지 않았구요

이제 질문입니다. (조금 두서없이 길게 적게될지라도 읽어봐주시면 하는 작은 바램을 가져봅니다.^^)
1.ScrollBar 관련 질문입니다.
찾아보니.. GtkVScrollBar GtkHScrollBar 가 있던데. 그냥 만드는 API만 나와있고 아무것도 없습니다.
설정된 갯수가 넘어가면 스크롤바가 생기고 아래/위로 선택이 가능하게 하는 어떠한 조건을 설정하는 API가 분명 있을텐데
모르겠습니다..ㅠㅠ ScrollWindow가 아닌 GtkVScrollBar 를 사용하는 간단한 예제 or 참조 사이트 부탁드립니다.^^

2.ScrollBar를 찾아보다 보니 GtkAdjustment 라는게 있었습니다.
문제는 이게 머하는건지 전혀 감이 안잡힌다는 것입니다.^^; 간단한 개념 설명과 간단한 예시를 부탁드립니다.

3.ScrollWindow를 Gtk Tutorial에 나와있는 예제로 만들어 보았습니다.

GtkWidget *window;
GtkWidget *table;
GtkWidget *scroll_window;
     ...
scroll_window = gtk_scrolled_window_new(NULL,NULL);
gtk_container_board_width(GTK_CONTAINER(scroll_window),10);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(window),scroll_window);
gtk_widget_show(scroll_window);
 
table = gtk_table_new(10,10,FALSE);
gtk_container_add(GTK_CONTAINER(scroll_window),table);    //GDB로 디버깅 해본결과 이부분에서 에러가 납니다.
gtk_widget_show(table);
     ...
gtk_widget_show(window);

몇개 빠진부분도 있지만 에러 나는 부분만 넣어봤습니다. 위와같이 코딩을 해서 실행을 하면 (컴파일시는 문제없습니다.)
아래와 같은 에러 메세지가 뜹니다.
Gtk-WARNING **:gtk_scrolled_window_add() : connot add non scrollable widget use gtk_scrolled_window_add_with_viewport() instead

이런 에러 메세지가 뜨고는 table이 scrollwindow와 따로놉니다.
이부분때문에 상당히 많이 찾아봤지만. 결국 허탕이었습니다. List Widget은 추가 되더군요..ㅠㅠ
ScrollWindow에는 table나 vbox hbox 같은 영역(?) 을 추가할수 없는 것인가요? (vbox로도 해봤습니다만 같은 결과입니다.)

4.Table는 10x10 과 같은식으로 갯수 제한이 가능합니다.
그럼 vbox는 갯수 제한이 불가능 한것인가요?
이걸 물어보는 이유는 vbox에 button or label 을 add하고 vbox를 scroll에 add하는 어떠한 방법을 찾으면 되지 않을까 하는 생각에서입니다.

5.위에 제가 만들고 싶다고 한 list를 만드는데 좀더 좋은 방법은 없을까요?

.
.
.
.
.
.

========================요약==========================
만들려고 하는 어플
(휴대폰의 검색된 목록 표시 화면)
(MFC의 List Box처럼 하얀 배경에 까만 글만 나오는 그런것이 아님)
(즉 list widget을 물어보는게 아니라는 것이죠.^^)

질문
1.GtkVScrollBar 사용을 위한 간단한 예제 or 참조 사이트
(ScrollBar로 Control할 List추가.. 표시 갯수.. 등등 등록..사용법 등의 간단한 예제)

2.GtkVScrollbar와 관련된 GtkAdjustment의 간단한 개념 설명 및 사용법

3.ScrollWindow에 Table or vBox를 추가했을시 아래 에러가 뜨는 이유 해결 법

Gtk-WARNING **:gtk_scrolled_window_add() : connot add non scrollable widget use gtk_scrolled_window_add_with_viewport() instead

4.Table와 같이 vBox도 크기 or 등록 갯수 제한하는 방법

5.만들려고 하는 어플 을 만들기 위해 위 ScrollBar Table 외 더 좋은방법
=========================================================

이상입니다. 요약만 보셔두 어느정도 이해가 되지 않을까 싶은데.. 저의 생각이겠죠.^^;

개념없는 글인것 같지만 좋은 답변 기다리겠습니다.

scroll 하나때문에 3일간 고생하고 있습니다..^^;

몇일 더찾아보라는 말씀만은 하지 말아주시고.... 앞으로 올라올 답글 미리 감사드리겠습니다.^^

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

gtk_container_add(GTK_CONTAINER(scroll_window),lable);    //GDB로 디버깅 해본결과 이부분에서 에러가 납니다.

lable -> table

qldpfh의 이미지

앗 감사합니다..
근데 이부분은 제가 질문을 올리면서 오타친거입니다.^^;
gtk_container_add(GTK_CONTAINER(scroll_window),table); 로 해서 에러가 납니다.^^;

qldpfh의 이미지

3번 질문은 gtk_scrolled_window_add_with_viewport() 을 통해 해결되었습니다.
gtk_container_add 대신 gtk_scrolled_window_add_with_viewport() 를 사용하니 되더군요.

3번질문이 해결되면서 4,5번 질문은 개념없는 질문이란걸 알게되었습니다.ㄷㄷ

답글이 안올라 오는 이유가 있군요.^^;

그래도.. 개념없는 글입니다! 라는 글이라도 올라오길 바랬습니다만....
(잘 모르는사람은 이게 개념이 있는건지 없는건지 조차 모릅니다.. 알려주셔야 알죠..ㄷㄷ)

정확한 이유는 모르겠지만.. scroll_window 에 container_add 론 안됩니다.. 혹 저와같이 튜토리얼 보고
헤메시는 분이계시다면 참고하여 주세요.. 참고가 된다면.^^;

그리고 1,2번 질문또한 개념이 있는지 없는지는 잘모르겟지만.. 답변 부탁드립니다.^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.