GTK Graphics Sample Activity/lang-ko

From OLPC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  번역근원 GTK Graphics Sample Activity 원문  
  english | 한국어   +/- 차이  

환영합니다 | 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