/usr/share/help/cs/gnome-devel-demos/tooltip.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 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | <?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="tooltip.py" xml:lang="cs">
<info>
<title type="text">Tooltip (Python)</title>
<link type="guide" xref="beginner.py#misc"/>
<link type="seealso" xref="toolbar.py"/>
<link type="next" xref="toolbar_builder.py"/>
<revision version="0.1" date="2012-08-20" status="draft"/>
<credit type="author copyright">
<name>Marta Maria Casetti</name>
<email its:translate="no">mmcasetti@gmail.com</email>
<years>2012</years>
</credit>
<desc>Přidání vysvětlivek do vašich widgetů</desc>
</info>
<title>Tooltip</title>
<media type="image" mime="image/png" src="media/tooltip.png"/>
<p>Nástrojová lišta s vysvětlivkami (s obrázky) u tlačítek.</p>
<note><p>Tento příklad vychází z příkladu <link xref="toolbar.py">Toolbar</link>.</p></note>
<links type="section"/>
<section id="code">
<title>Kód použitý k vygenerování tohoto příkladu</title>
<code mime="text/x-python" style="numbered">from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import Gio
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(
self, title="Toolbar with Tooltips Example", application=app)
self.set_default_size(400, 200)
grid = Gtk.Grid()
toolbar = self.create_toolbar()
toolbar.set_hexpand(True)
toolbar.show()
grid.attach(toolbar, 0, 0, 1, 1)
self.add(grid)
undo_action = Gio.SimpleAction.new("undo", None)
undo_action.connect("activate", self.undo_callback)
self.add_action(undo_action)
fullscreen_action = Gio.SimpleAction.new("fullscreen", None)
fullscreen_action.connect("activate", self.fullscreen_callback)
self.add_action(fullscreen_action)
def create_toolbar(self):
toolbar = Gtk.Toolbar()
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
# Tlačítko pro akci "new"
new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)
# S vysvětlivkou se zadaným textem
new_button.set_tooltip_text("Create a new file")
new_button.set_is_important(True)
toolbar.insert(new_button, 0)
new_button.show()
new_button.set_action_name("app.new")
# Tlačítko pro akci "open"
open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)
# S vysvětlivkou se zadaným textem s použitím značkovacího jazyka Pango
open_button.set_tooltip_markup("Open an <i>existing</i> file")
open_button.set_is_important(True)
toolbar.insert(open_button, 1)
open_button.show()
open_button.set_action_name("app.open")
# Tlačítko pro akci "undo"
undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)
# S vysvětlivkou s obrázkem
# Nastaví vlastnost "has-tooltip" na True
undo_button.set_property("has-tooltip", True)
# Napojí funkci zpětného volání na signál "query-tooltip"
# od vysvětlivky
undo_button.connect("query-tooltip", self.undo_tooltip_callback)
undo_button.set_is_important(True)
toolbar.insert(undo_button, 2)
undo_button.show()
undo_button.set_action_name("win.undo")
# Tlačítko pro akci "fullscreen/leave fullscreen"
self.fullscreen_button = Gtk.ToolButton.new_from_stock(
Gtk.STOCK_FULLSCREEN)
self.fullscreen_button.set_is_important(True)
toolbar.insert(self.fullscreen_button, 3)
self.fullscreen_button.set_action_name("win.fullscreen")
return toolbar
# Funkce zpětného volání pro vysvětlivku tlačítka "undo"
def undo_tooltip_callback(self, widget, x, y, keyboard_mode, tooltip):
# Nastaví text pro vysvětlivku
tooltip.set_text("Undo your last action")
# Nastaví ikonu pro vysvětlivku
tooltip.set_icon_from_stock("gtk-undo", Gtk.IconSize.MENU)
# Zobrazí vysvětlivku
return True
def undo_callback(self, action, parameter):
print("You clicked \"Undo\".")
def fullscreen_callback(self, action, parameter):
is_fullscreen = self.get_window().get_state(
) & Gdk.WindowState.FULLSCREEN != 0
if not is_fullscreen:
self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)
self.fullscreen()
else:
self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)
self.unfullscreen()
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):
Gtk.Application.do_startup(self)
new_action = Gio.SimpleAction.new("new", None)
new_action.connect("activate", self.new_callback)
app.add_action(new_action)
open_action = Gio.SimpleAction.new("open", None)
open_action.connect("activate", self.open_callback)
app.add_action(open_action)
def new_callback(self, action, parameter):
print("You clicked \"New\".")
def open_callback(self, action, parameter):
print("You clicked \"Open\".")
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
</code>
</section>
<section id="methods">
<title>Užitečné metody pro widget Tooltip</title>
<p><code>set_tooltip_text(text)</code> a <code>set_tooltip_markup(text)</code> můžete použít k přidání vysvětlivky v podobě prostého textu (nebo textu se značkovacím jazykem Pango) k widgetu.</p>
<p>Pro složitější vysvětlivky, například pro vysvětlivky s obrázky:</p>
<steps>
<item><p>Nastavte vlastnost <code>"has-tooltip"</code> widgetu na <code>True</code>. To přiměje GTK+ sledovat widget ohledně pohybu myši a dalších událostí, které jsou zapotřebí k určení, kdy a kde zobrazit vysvětlivku.</p></item>
<item><p>Napojte signál <code>"query-tooltip"</code>. Tento signál bude vyslán, když by měla být vysvětlivka zobrazena. Jedním z argumentů předaných do obsluhy signálu je objekt <code>GtkTooltip</code>. Jedná se o objekt, který bude zobrazen jako vysvětlivka a může být v našem zpětném volání upravován pomocí funkcí, jako je <code>set_icon()</code>. Existují funkce pro nastavení textu se značkovacím jazykem (<code>set_markup(text)</code>), pro nastavení obrázku ze standardní ikony (<code>set_icon_from_stock(standardní_id, velikost)</code>) nebo i pro vložení vlastního widgetu (<code>set_custom(widget)</code>).</p></item>
<item><p>Ze své obsluhy signálu <code>"query-tooltip"</code> vraťte <code>True</code>. Způsobí to zobrazení vysvětlivky. Když vrátíte <code>False</code>, tak se nezobrazí.</p></item>
</steps>
<p>V pravděpodobně zřídkavějších případech, kdy budete chtít větší kontrolu nad vysvětlivkou, která se má zobrazit, můžete nastavit své vlastní <code>GtkWidow</code>, které bude použito jako okno vysvětlivky. Funguje to následovně:</p>
<steps>
<item><p>Nastavte <code>"has-tooltip"</code> a napojte ke <code>"query-tooltip"</code> stejně jako dříve.</p></item>
<item><p>Použijte u widgetu funkci <code>set_tooltip_window()</code> k nastavení <code>GtkWindow</code>, které jste vytvořili, jako okna vysvětlivky.</p></item>
<item><p>Ve zpětném volání pro signál <code>"query-tooltip"</code> máte přístup ke svému oknu pomocí <code>get_tooltip_window()</code> a upravte si jej podle svých potřeb. Sémantika vracené hodnoty je úplně stejná jako v předchozím – <code>True</code> okno zobrazí, <code>False</code> jej nezobrazí.</p></item>
</steps>
</section>
<section id="references">
<title>Odkazy k API</title>
<p>V této ukázce se používá následující:</p>
<list>
<item><p><link href="http://developer.gnome.org/gtk3/stable/GtkTooltip.html">GtkTooltip</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/stable/GtkToolbar.html">GtkToolbar</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/stable/GtkWidget.html">GtkWidget</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html">Standardní položky</link></p></item>
</list>
</section>
</page>
|