Blame platform-demos/ko/toolbar.py.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="toolbar.py" xml:lang="ko">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">Toolbar (Python)</title>
Packit 1470ea
    <link type="guide" xref="beginner.py#menu-combo-toolbar"/>
Packit 1470ea
    <link type="seealso" xref="grid.py"/>
Packit 1470ea
    <link type="next" xref="tooltip.py"/>
Packit 1470ea
    <revision version="0.1" date="2012-06-05" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Marta Maria Casetti</name>
Packit 1470ea
      <email its:translate="no">mmcasetti@gmail.com</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>단추 및 기타 위젯 표시줄</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>조성호</mal:name>
Packit 1470ea
      <mal:email>shcho@gnome.org</mal:email>
Packit 1470ea
      <mal:years>2017</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>Toolbar</title>
Packit 1470ea
Packit 1470ea
  <media type="image" mime="image/png" src="media/toolbar.png"/>
Packit 1470ea
  

(스톡 아이콘에서 온)단추를 Toolbar에 넣은 예제입니다.

Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
    <title>예제 결과를 만드는 코드</title>
Packit 1470ea
Packit 1470ea
    from gi.repository import Gtk
Packit 1470ea
from gi.repository import Gdk
Packit 1470ea
from gi.repository import Gio
Packit 1470ea
import sys
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyWindow(Gtk.ApplicationWindow):
Packit 1470ea
Packit 1470ea
    def __init__(self, app):
Packit 1470ea
        Gtk.Window.__init__(self, title="Toolbar Example", application=app)
Packit 1470ea
        self.set_default_size(400, 200)
Packit 1470ea
Packit 1470ea
        # a grid to attach the toolbar
Packit 1470ea
        grid = Gtk.Grid()
Packit 1470ea
Packit 1470ea
        # a toolbar created in the method create_toolbar (see below)
Packit 1470ea
        toolbar = self.create_toolbar()
Packit 1470ea
        # with extra horizontal space
Packit 1470ea
        toolbar.set_hexpand(True)
Packit 1470ea
        # show the toolbar
Packit 1470ea
        toolbar.show()
Packit 1470ea
Packit 1470ea
        # attach the toolbar to the grid
Packit 1470ea
        grid.attach(toolbar, 0, 0, 1, 1)
Packit 1470ea
Packit 1470ea
        # add the grid to the window
Packit 1470ea
        self.add(grid)
Packit 1470ea
Packit 1470ea
        # create the actions that control the window and connect their signal to a
Packit 1470ea
        # callback method (see below):
Packit 1470ea
Packit 1470ea
        # undo
Packit 1470ea
        undo_action = Gio.SimpleAction.new("undo", None)
Packit 1470ea
        undo_action.connect("activate", self.undo_callback)
Packit 1470ea
        self.add_action(undo_action)
Packit 1470ea
Packit 1470ea
        # fullscreen
Packit 1470ea
        fullscreen_action = Gio.SimpleAction.new("fullscreen", None)
Packit 1470ea
        fullscreen_action.connect("activate", self.fullscreen_callback)
Packit 1470ea
        self.add_action(fullscreen_action)
Packit 1470ea
Packit 1470ea
    # a method to create the toolbar
Packit 1470ea
    def create_toolbar(self):
Packit 1470ea
        # a toolbar
Packit 1470ea
        toolbar = Gtk.Toolbar()
Packit 1470ea
Packit 1470ea
        # which is the primary toolbar of the application
Packit 1470ea
        toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
Packit 1470ea
Packit 1470ea
        # create a button for the "new" action, with a stock image
Packit 1470ea
        new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)
Packit 1470ea
        # label is shown
Packit 1470ea
        new_button.set_is_important(True)
Packit 1470ea
        # insert the button at position in the toolbar
Packit 1470ea
        toolbar.insert(new_button, 0)
Packit 1470ea
        # show the button
Packit 1470ea
        new_button.show()
Packit 1470ea
        # set the name of the action associated with the button.
Packit 1470ea
        # The action controls the application (app)
Packit 1470ea
        new_button.set_action_name("app.new")
Packit 1470ea
Packit 1470ea
        # button for the "open" action
Packit 1470ea
        open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)
Packit 1470ea
        open_button.set_is_important(True)
Packit 1470ea
        toolbar.insert(open_button, 1)
Packit 1470ea
        open_button.show()
Packit 1470ea
        open_button.set_action_name("app.open")
Packit 1470ea
Packit 1470ea
        # button for the "undo" action
Packit 1470ea
        undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)
Packit 1470ea
        undo_button.set_is_important(True)
Packit 1470ea
        toolbar.insert(undo_button, 2)
Packit 1470ea
        undo_button.show()
Packit 1470ea
        undo_button.set_action_name("win.undo")
Packit 1470ea
Packit 1470ea
        # button for the "fullscreen/leave fullscreen" action
Packit 1470ea
        self.fullscreen_button = Gtk.ToolButton.new_from_stock(
Packit 1470ea
            Gtk.STOCK_FULLSCREEN)
Packit 1470ea
        self.fullscreen_button.set_is_important(True)
Packit 1470ea
        toolbar.insert(self.fullscreen_button, 3)
Packit 1470ea
        self.fullscreen_button.set_action_name("win.fullscreen")
Packit 1470ea
Packit 1470ea
        # return the complete toolbar
Packit 1470ea
        return toolbar
Packit 1470ea
Packit 1470ea
    # callback method for undo
Packit 1470ea
    def undo_callback(self, action, parameter):
Packit 1470ea
        print("You clicked \"Undo\".")
Packit 1470ea
Packit 1470ea
    # callback method for fullscreen / leave fullscreen
Packit 1470ea
    def fullscreen_callback(self, action, parameter):
Packit 1470ea
        # check if the state is the same as Gdk.WindowState.FULLSCREEN, which
Packit 1470ea
        # is a bit flag
Packit 1470ea
        is_fullscreen = self.get_window().get_state(
Packit 1470ea
        ) & Gdk.WindowState.FULLSCREEN != 0
Packit 1470ea
        if not is_fullscreen:
Packit 1470ea
            self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)
Packit 1470ea
            self.fullscreen()
Packit 1470ea
        else:
Packit 1470ea
            self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)
Packit 1470ea
            self.unfullscreen()
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyApplication(Gtk.Application):
Packit 1470ea
Packit 1470ea
    def __init__(self):
Packit 1470ea
        Gtk.Application.__init__(self)
Packit 1470ea
Packit 1470ea
    def do_activate(self):
Packit 1470ea
        win = MyWindow(self)
Packit 1470ea
        win.show_all()
Packit 1470ea
Packit 1470ea
    def do_startup(self):
Packit 1470ea
        Gtk.Application.do_startup(self)
Packit 1470ea
Packit 1470ea
        # create the actions that control the window and connect their signal to a
Packit 1470ea
        # callback method (see below):
Packit 1470ea
Packit 1470ea
        # new
Packit 1470ea
        new_action = Gio.SimpleAction.new("new", None)
Packit 1470ea
        new_action.connect("activate", self.new_callback)
Packit 1470ea
        app.add_action(new_action)
Packit 1470ea
Packit 1470ea
        # open
Packit 1470ea
        open_action = Gio.SimpleAction.new("open", None)
Packit 1470ea
        open_action.connect("activate", self.open_callback)
Packit 1470ea
        app.add_action(open_action)
Packit 1470ea
Packit 1470ea
    # callback method for new
Packit 1470ea
    def new_callback(self, action, parameter):
Packit 1470ea
        print("You clicked \"New\".")
Packit 1470ea
Packit 1470ea
    # callback method for open
Packit 1470ea
    def open_callback(self, action, parameter):
Packit 1470ea
        print("You clicked \"Open\".")
Packit 1470ea
Packit 1470ea
app = MyApplication()
Packit 1470ea
exit_status = app.run(sys.argv)
Packit 1470ea
sys.exit(exit_status)
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="methods">
Packit 1470ea
    <title>Toolbar 위젯에 쓸만한 메서드</title>
Packit 1470ea
    

32번째 줄에서 undo_action 동작의 "activate" 시그널은 action.connect(signal, callback function) 함수로 undo_callback() 콜백 함수에 연결했습니다. 더 자세한 설명은 <link xref="signals-callbacks.py"/>를 참조하십시오.

Packit 1470ea
Packit 1470ea
    <list>
Packit 1470ea
      <item>

position 위치에 tool_item을 넣으려면 insert(tool_item, position) 함수를 사용하십시오. position 값이 음수면 해당 항목을 도구 모음 마지막에 붙여넣습니다.

</item>
Packit 1470ea
      <item>

get_item_index(tool_item) 함수는 도구 모음에서 tool_item 항목의 위치를 가져옵니다.

</item>
Packit 1470ea
      <item>

get_n_items() 함수는 도구 모음의 항목 갯수를 가져옵니다. get_nth_item(position) 함수는 position 위치의 항목을 반환합니다.

</item>
Packit 1470ea
      <item>

모든 메뉴 항목에 대해 ToolBar에서 공간을 가지고 있지 않고, set_show_arrow(True) 함수를 실행했다면, 공간이 없는 항목은 오버플로우 메뉴에 나타납니다.

</item>
Packit 1470ea
      <item>

set_icon_size(icon_size) 함수는 도구 모음의 아이콘 크기를 설정합니다. icon_size 값은 Gtk.IconSize.INVALID, Gtk.IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk.IconSize.DND, Gtk.IconSize.DIALOG 중 하나가 될 수 있습니다. 도구 모음에 지정 목적을 위해서만 사용해야 하며 일반 프로그램 도구 모음에서는 사용자가 원하는 아이콘 크기 설정을 따라야합니다. unset_icon_size() 함수는 set_icon_size(icon_size) 함수로 설정한 항목의 설정을 취소하므로 아이콘 크기를 결정할 때 사용자 설정 값을 사용합니다.

</item>
Packit 1470ea
      <item>

style 값을 Gtk.ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, Gtk.ToolbarStyle.BOTH_HORIZ 중 하나로 사용하는 set_style(style) 함수는 도구 모음에 아이콘만 나타낼 지, 텍스트만 나타낼 지, 아니면 둘 다(수직 방향, 수평 방향) 나타낼 지를 설정합니다. 사용자 설정으로 도구 모음 모양새를 결정하게 하고, 도구 모음 모양새 설정을 취소하려면 unset_style() 함수를 사용하십시오.

</item>
Packit 1470ea
    </list>
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="reference">
Packit 1470ea
    <title>API 참고서</title>
Packit 1470ea
    

이 예제는 다음 참고자료가 필요합니다:

Packit 1470ea
    <list>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkToolbar.html">GtkToolbar</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkToolButton.html">GtkToolButton</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkToolItem.html">GtkToolItem</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html">스톡 항목</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkActionable.html">GtkActionable</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkWidget.html">GtkWidget</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gdk3/unstable/gdk3-Event-Structures.html#GdkEventWindowState">이벤트 구조체</link>

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
</page>