/usr/share/help/ko/gnome-devel-demos/gmenu.py.page is in gnome-devel-docs 3.28.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | <?xml version="1.0" encoding="utf-8"?>
<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="gmenu.py" xml:lang="ko">
<info>
<title type="text">GMenu(Python)</title>
<link type="guide" xref="beginner.py#menu-combo-toolbar"/>
<link type="seealso" xref="signals-callbacks.py"/>
<link type="next" xref="menubutton.py"/>
<revision version="0.1" date="2012-04-28" status="draft"/>
<credit type="author copyright">
<name>Tiffany Antopolski</name>
<email its:translate="no">tiffany.antopolski@gmail.com</email>
<years>2012</years>
</credit>
<credit type="author copyright">
<name>Marta Maria Casetti</name>
<email its:translate="no">mmcasetti@gmail.com</email>
<years>2012</years>
</credit>
<desc>GMenu의 간단한 구현체</desc>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>조성호</mal:name>
<mal:email>shcho@gnome.org</mal:email>
<mal:years>2017</mal:years>
</mal:credit>
</info>
<title>GMenu</title>
<media type="image" mime="image/png" src="media/gmenu.py.png"/>
<p>간단한 GMenu 및 SimpleAction과 사용하는 GtkApplication</p>
<links type="section"/>
<section id="code">
<title>예제 결과를 만드는 코드</title>
<code mime="text/x-python" style="numbered">
from gi.repository import Gtk
from gi.repository import Gio
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="GMenu Example", application=app)
class MyApplication(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
def do_activate(self):
win = MyWindow(self)
win.show_all()
def do_startup(self):
# start the application
Gtk.Application.do_startup(self)
# create a menu
menu = Gio.Menu()
# append to the menu three options
menu.append("New", "app.new")
menu.append("About", "app.about")
menu.append("Quit", "app.quit")
# set the menu as menu of the application
self.set_app_menu(menu)
# create an action for the option "new" of the menu
new_action = Gio.SimpleAction.new("new", None)
# connect it to the callback function new_cb
new_action.connect("activate", self.new_cb)
# add the action to the application
self.add_action(new_action)
# option "about"
about_action = Gio.SimpleAction.new("about", None)
about_action.connect("activate", self.about_cb)
self.add_action(about_action)
# option "quit"
quit_action = Gio.SimpleAction.new("quit", None)
quit_action.connect("activate", self.quit_cb)
self.add_action(quit_action)
# callback function for "new"
def new_cb(self, action, parameter):
print("This does nothing. It is only a demonstration.")
# callback function for "about"
def about_cb(self, action, parameter):
print("No AboutDialog for you. This is only a demonstration.")
# callback function for "quit"
def quit_cb(self, action, parameter):
print("You have quit.")
self.quit()
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
</code>
</section>
<section id="methods">
<title>GSimpleAction과 GMenu에 쓸만한 메서드</title>
<p>33번째 줄에서 <code>new_action</code> 동작의 <code>"activate"</code> 시그널은 <code><var>widget</var>.connect(<var>signal</var>, <var>callback function</var>)</code> 콜백 함수에 연결했습니다. 더 자세한 설명은 <link xref="signals-callbacks.py"/>를 참조하십시오.</p>
<p>GSimpleAction에 쓸만한 메서드:</p>
<list>
<item><p>동작 자체에 주어진 상태를 유지하거나 이에 따르지 않아 <em>상태를 반영하지 않는</em> 새 동작을 만들려면 다음 코드를 사용하십시오.</p>
<code>
action = Gio.SimpleAction.new("name", parameter_type)</code>
<p>여기서 <code>"name"</code>는 동작 이름, <code>parameter_type</code>은 활성화했을 때 받는 동작을 나타내는 매개변수 형식입니다. <code>parameter_type</code> 값은 <code>None</code> 또는, 매개변수 값 형식이 <code>str</code> 일 경우 <code>GLib.VariantType.new('s')</code> 또는 <link href="http://developer.gnome.org/glib/unstable/glib-GVariantType.html">여기</link>서 설명한대로 <code>'s'</code> 문자를 그냥 쓰면 됩니다. 새 <em>상태 반영</em>(무상태 아님) 동작을 만들려면 다음 코드를 사용하십시오.</p>
<code>
action = Gio.SimpleAction.new_stateful("name", parameter_type, initial_state)</code>
<p>여기서 <code>initial_state</code>는 GVariant 형식으로 정의합니다. 이를 테면 <code>Glib.Variant.new_string('start')</code> 코드가 있습니다. 가능한 코드를 보려면 <link href="http://developer.gnome.org/glib/unstable/glib-GVariant.html">이 문서</link>를 참고하십시오.</p></item>
<item><p><code>set_enabled(True)</code> 함수는 동작 활성화를 설정하며, 활성화하거나 외부 호출자가 상태를 바꾸게 하려면 반드시 동작을 활성화해야 합니다. 이 함수는 동작 구현체에서만 호출해야 합니다. 동작 사용자는 활성 플래그를 수정하지 못하게 해야합니다.</p></item>
<item><p><code>set_state(state)</code> 함수는 주어진 값으로 'state' 속성 값을 업데이트하여 동작의 상태를 설정하며, <code>state</code> 는 GVariant 형식입니다. 이 함수는 동작 구현체에서만 호출해야합니다. 동작 사용자는 상태 전환을 요청하려면 이 함수 대신 <code>change_state(state)</code>(<code>state</code> 값은 위에서 설명) 함수를 사용해야합니다.</p></item>
</list>
<p>GMenu에 쓸만한 메서드:</p>
<list>
<item><p>항목을 메뉴의 <code>position</code> 위치에 넣으려면 <code>insert(position, label, detailed_action)</code> 함수를 활용하십시오. 여기서 <code>label</code> 은 메뉴에 나타나는 레이블이며, <code>detailed_action</code> 는 앞에 <code>app.</code>이 뭍는 동작 이름으로 이루어진 문자열이 들어갑니다. 이 부분에 대한 자세한 이야기에는 <link xref="menubar.py#win-app"/>에 있습니다.</p>
<p>메뉴에 항목을 뒤에 붙이려면 <code>append(label, detailed_action)</code> 함수를, 앞에 붙이려면 <code>prepend(label, detailed_action)</code> 함수를 사용하십시오.</p></item>
<item><p>메뉴에 항목을 추가하는 다른 방법으로는 <code>GMenuItem</code> 항목을 만들고 <code>insert_item(position, item)</code>, <code>append_item(item)</code>, <code>prepend_item(item)</code> 함수를 사용하는 방법입니다. 그러니까 예를 들면 다음 코드와 같습니다:</p>
<code>
about = Gio.MenuItem.new("About", "app.about")
menu.append_item(about)</code>
</item>
<item><p>메뉴에 <code>insert_section(position, label, section)</code>, <code>append_section(label, section)</code>, <code>prepend_section(label, section)</code> 함수로 전체 하위 섹션을 추가할 수 있습니다. 여기서 <code>label</code>은 하위 섹션의 제목입니다.</p></item>
<item><p>나타내고 숨길 하위 메뉴를 추가하려면 <code>insert_submenu(position, label, section)</code>, <code>append_submenu(label, section)</code>, <code>prepend_submenu(label, section)</code> 함수를 사용하십시오. 여기서 <code>label</code>은 하위 섹션의 제목입니다.</p></item>
<item><p>메뉴 항목을 제거하려면 <code>remove(position)</code> 함수를 사용하십시오.</p></item>
<item><p>메뉴에 레이블을 설정하려면 <code>set_label(label)</code> 함수를 사용하십시오.</p></item>
</list>
</section>
<section id="references">
<title>API 참고서</title>
<p>이 예제는 다음 참고자료가 필요합니다:</p>
<list>
<item><p><link href="http://developer.gnome.org/gio/unstable/GMenu.html">GMenu</link></p></item>
<item><p><link href="http://developer.gnome.org/gio/stable/GSimpleAction.html">GSimpleAction</link></p></item>
<item><p><link href="http://developer.gnome.org/glib/unstable/glib-GVariantType.html">GVariantType</link></p></item>
<item><p><link href="http://developer.gnome.org/glib/unstable/glib-GVariant.html">GVariant</link></p></item>
</list>
</section>
</page>
|