GTK Graphics Sample Activity/lang-ko

From OLPC
< GTK Graphics Sample Activity
Revision as of 05:01, 13 July 2007 by Php5 (talk | contribs) (New page: {{Korean}} GTK (특히, PyGTK)를 이용하여 슈가 액티비티 속에서 그래픽을 처리하는 방법을 보여주는 한 액티비티입니다. 이 액티비티는 GTK 그리기 ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

환영합니다 | Portal | XO Korea | Deployment | Content | Hardware | Software | Mesh Network | Ethics | LOS | XO City | Accreditation | Consortium

GTK (특히, PyGTK)를 이용하여 슈가 액티비티 속에서 그래픽을 처리하는 방법을 보여주는 한 액티비티입니다. 이 액티비티는 GTK 그리기 명령어를 이용하여 블랙 스퀘어 속에 그린 스퀘어를 그립니다. 아무 키나 누르면, 중단됩니다.

#
# Minimal GTK Graphics Activity
#
# This demo shows how to set things up to do GTK graphics
# in the Sugar environment.
# 

import pygtk
pygtk.require('2.0') 
 
import gtk
import sys 

from sugar.activity import activity

class MinimalGtkGraphicsActivity(activity.Activity):
    """Minimal GTK Graphics activity.  
    
    Sets up the window for drawing and draws a rectangle inside
    another rectangle when the window is shown to the user.  Waits
    for a key press and then quits.

    """

    def __init__(self, handle):
        activity.Activity.__init__(self, handle)

        # remove any children of the window that Sugar may have added
        for widget in self.get_children():
            self.remove(widget)

        self.set_title("Drawing Area Example")

        # Set up event handlers
        self.connect("destroy", lambda w: gtk.main_quit())
        self.connect("expose-event", self.area_expose_cb)
        self.connect("key_press_event", self.keypress_cb)
        self.show()
       
        # Set up the drawing area and graphics context
        self.area = self.window
        self.gc = self.area.new_gc()

        # Set up the colors to draw with
        self.colormap = self.gc.get_colormap()
        self.colors = {}
        self.colors['green'] = self.colormap.alloc_color('green')
        self.colors['black'] = self.colormap.alloc_color('black')

    def keypress_cb(self, widget, event):
        """Handle a key press"""
        sys.exit() 

    def area_expose_cb(self, area, event):
        """Window exposed callback, includes drawing the boxes"""
        self.gc.set_foreground(self.colors['black'])
        self.area.draw_rectangle(self.gc, True, 100, 100, 300, 300)
        self.gc.foreground = self.colors['green']
        self.area.draw_rectangle(self.gc, True, 200, 200, 100, 100) 

        return True