Blog | Tag | Local | Guest | Login | Write |  RSS
저의 글을 열심히 읽어주신 분이 부탁하셔서, 이번주에는 GTK+ Widget 들을 보충하기 위한 class 계층 구조 트리를 올려드리겠습니다. 저도 widget이 많은 관계로 자주 사용하는것만 외우고 있을 뿐, 아래의 표를 참고하고 있습니다. GTK+를 정말 능숙하게 사용한다면, 전부 외우고 있겠죠? ㅋㅋㅋ 앞으로 그런 날이 올거라 믿고 열심히 포스팅 하겠습니다.ㅋ
사실은 공부를 하면서 widget을 올린 window를 하나씩 만들어 보려고했지만, 아래의 계층구조 트리를 보면서 하나씩 제작하는것도 괜찮다는 생각이 드네요 ^ ^;

GtkObject
   +GtkData
   | +GtkAdjustment
   | `GtkTooltips
   `GtkWidget
     +GtkContainer
     | +GtkBin
     | | +GtkAlignment
     | | +GtkEventBox
     | | +GtkFrame
     | | | `GtkAspectFrame
     | | +GtkHandleBox
     | | +GtkItem
     | | | +GtkListItem
     | | | +GtkMenuItem
     | | | | `GtkCheckMenuItem
     | | | |   `GtkRadioMenuItem
     | | | `GtkTreeItem
     | | +GtkViewport
     | | `GtkWindow
     | |   +GtkColorSelectionDialog
     | |   +GtkDialog
     | |   | `GtkInputDialog
     | |   `GtkFileSelection
     | +GtkBox
     | | +GtkButtonBox
     | | | +GtkHButtonBox
     | | | `GtkVButtonBox
     | | +GtkHBox
     | | | +GtkCombo
     | | | `GtkStatusbar
     | | `GtkVBox
     | |   +GtkColorSelection
     | |   `GtkGammaCurve
     | +GtkButton
     | | +GtkOptionMenu
     | | `GtkToggleButton
     | |   `GtkCheckButton
     | |     `GtkRadioButton
     | +GtkCList
     |  `GtkCTree
     | +GtkFixed
     | +GtkList
     | +GtkMenuShell
     | | +GtkMenuBar
     | | `GtkMenu
     | +GtkNotebook
     | +GtkPaned
     | | +GtkHPaned
     | | `GtkVPaned
     | +GtkScrolledWindow
     | +GtkTable
     | +GtkToolbar
     | `GtkTree
     +GtkDrawingArea
     | `GtkCurve
     +GtkEditable
     | +GtkEntry
     | | `GtkSpinButton
     | `GtkText
     +GtkMisc
     | +GtkArrow
     | +GtkImage
     | +GtkLabel
     | | `GtkTipsQuery
     | `GtkPixmap
     +GtkPreview
     +GtkProgressBar
     +GtkRange
     | +GtkScale
     | | +GtkHScale
     | | `GtkVScale
     | `GtkScrollbar
     |   +GtkHScrollbar
     |   `GtkVScrollbar
     +GtkRuler
     | +GtkHRuler
     | `GtkVRuler
     `GtkSeparator
       +GtkHSeparator
       `GtkVSeparator

계층구조 트리 부분중 굵은 글씨로 표기한 것은 제가 이전에 포스팅했던 내용입니다. 겨우 2개밖에 하지 못했네요,
앞으로 하나씩 하나씩 굵은 글씨로 만들어 볼 생각입니다. ^ ^ 아! 위의 계층구조는 window와 관련된 widget입니다.

GTK+를 하다보면 window가 없는 Event를 종종 사용해야 할 것입니다. window와 무관한 widget을 몇가지 설명할까합니다.EventBox widget은 전혀 쓸모없을 수도 있습니다. 이것은 스크린에 아무것도 그리지 않으며 이벤트에도 응답하지 않습니다. 하지만 이것은 자신의 child widget으로 X윈도를 제공하는 한 함수를 지원하게됩니다. 이것은 많은 GTK widget들이 관련된 X윈도를 가지지 않는다는 점이 중요합니다. X윈도를 가지지 않는 것은 메모리를 절약하고 퍼포먼스를 증대합니다. 완벽할 수 없기에몇가지 약점도 가지고 있습니다. X윈도가 없는 widget은 이벤트를 받을 수 없고, 그리고 그의 항목들에 대한 클리핑도 하지 않습니다. EventBox라는 이름은 이벤트를 다루는 함수라는 의미도 있지만, widget들이 클리핑될 수도 있다는 것을 의미하기도 합니다.

GtkAlignment
GtkArrow
GtkBin
GtkBox
GtkImage
GtkItem
GtkLabel
GtkPaned
GtkPixmap
GtkScrolledWindow
GtkSeparator
GtkTable
GtkViewport
GtkAspectFrame
GtkFrame
GtkVPaned
GtkHPaned
GtkVBox
GtkHBox
GtkVSeparator
GtkHSeparator

우리는 window에 무언가의 widget을 올릴때마다 위의 Event widget을 사용할 것입니다. 각각의 widget을 차례로 시험하고 보여줄 수 있는 간단한 함수를 만들어 GTK+에 관한 공부를 해볼 생각입니다. 하나의 Project를 할때마다 Event widget을 최대한 넣어서 보여줄 생각입니다.

다음주에는 window에 버튼을 올려볼까 합니다. 간단히 만들어 보는 GTK+ 버튼 Widget!!!!

위의 계층 구조는 앞으로 계속 사용할 듯 합니다. SIG가 끝나기 전에 위의 widget을 전부 사용해보는게 목표로 잡고 열심히 만들겠습니다. 이번 한주도 열심히 열심히 공부하세요 ^ ^*