/usr/share/help/cs/gnome-devel-demos/textview.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 | <?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="textview.py" xml:lang="cs">
<info>
<title type="text">TextView (Python)</title>
<link type="guide" xref="beginner.py#multiline"/>
<link type="seealso" xref="strings.py"/>
<link type="seealso" xref="scrolledwindow.py"/>
<link type="next" xref="dialog.py"/>
<revision version="0.2" date="2012-06-19" status="draft"/>
<credit type="author copyright">
<name>Sebastian Pölsterl</name>
<email its:translate="no">sebp@k-d-w.org</email>
<years>2011</years>
</credit>
<credit type="author copyright editor">
<name>Marta Maria Casetti</name>
<email its:translate="no">mmcasetti@gmail.com</email>
<years>2012</years>
</credit>
<desc>Widget, který zobrazuje GtkTextBuffer</desc>
</info>
<title>TextView</title>
<note style="sidebar"><p>Toto je příklad widgetu Gtk.TextView.</p>
<p>Když zmáčkneme <key>Enter</key>, dostaneme nový řádek.</p>
<p>Můžeme se ale také dostat na nový řádek, když píšeme dlouhé věty (text bude zalomen na řádky mezi slovy).</p>
<p>Když máme dlouhééééééééééééééééééééééééééééééééééé</p>
<p>(to bylo dlouhé)</p>
<p>slovo, objeví se vodorovný posuvník.</p></note>
<media type="image" mime="image/png" src="media/textview.png"/>
<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
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="TextView Example", application=app)
self.set_default_size(300, 450)
# Posuvníky pro synovský widget (což bude TextView)
scrolled_window = Gtk.ScrolledWindow()
scrolled_window.set_border_width(5)
# Posuvníky zobrazit jen v případě potřeby
scrolled_window.set_policy(
Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
# Textová vyrovnávací paměť (uchovává text)
buffer1 = Gtk.TextBuffer()
# TextView (zobrazuje obsah vyrovnávací paměti)
textview = Gtk.TextView(buffer=buffer1)
# wrap the text, if needed, breaking lines in between words
textview.set_wrap_mode(Gtk.WrapMode.WORD)
# TextView má posuvníky
scrolled_window.add(textview)
self.add(scrolled_window)
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)
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
</code>
</section>
<section id="methods">
<title>Užitečné metody pro widget TextView</title>
<p><code>Gtk.TextView</code> zobrazuje text uchovávaný v <code>Gtk.TextBuffer</code>. Většina zásahů do textu je však prováděna pomocí iterátorů představovaných objektem <code>Gtk.TextIter</code> – pozicí mezi dvěma znaky v textové vyrovnávací paměti. Iterátory nemají trvalou platnost. Vždy, když dojde ke změně ve vyrovnávací paměti způsobem, který ovlivní obsah, stanou se všechny zasažené iterátory neplatnými. Z tohoto důvodu nelze iterátory použít k uchování pozic mezi změnami vyrovnávací paměti. K uchování pozice použijeme značky <code>Gtk.TextMark</code>, které lze zviditelnit pomocí <code>visible(True)</code>. Textová vyrovnávací paměť obsahuje dvě vestavěné značky. Značku „insert“ (pozice kurzoru) a „selection_bound“ (hranice výběru).</p>
<p>Metody pro widget TextView:</p>
<list>
<item><p>Widget <code>TextView</code> umožňuje ve výchozím stavu úpravy. Pokud požadujete opak, použijte <code>set_editable(False)</code>. Pokud vyrovnávací paměť nemá upravitelný text, je dobrý nápad také použít <code>set_cursor_visible(False)</code> ke skrytí kurzoru.</p></item>
<item><p>Zarovnání textu se nastavuje pomocí <code>set_justification(Gtk.Justification.JUSTIFICATION)</code>, kde <code>JUSTIFICATION</code> je něco z <code>LEFT, RIGHT, CENTER, FILL</code>.</p></item>
<item><p>Zalamování textu se nastavuje pomocí <code>set_wrap_mode(Gtk.WrapMode.WRAP)</code>, kde <code>WRAP</code> je jedno z <code>NONE</code> (textová oblast bude rozšířena), <code>CHAR</code> (řádky se zalamují, kdekoliv se může vyskytnout kurzor), <code>WORD</code> (řádky se zalamují za celými slovy), <code>WORD_CHAR</code> (řádky se zalamují mezi slovy, ale když to není možné, tak i mezi znaky).</p></item>
</list>
<p>Metody pro widget TextBuffer:</p>
<list>
<item><p><code>get_insert()</code> vrací <code>Gtk.TextMark</code>, který představuje kurzor, což je místo vkládání.</p></item>
<item><p><code>get_selection_bound()</code> vrací <code>Gtk.TextMark</code>, který představuje hranice výběru.</p></item>
<item><p><code>set_text("nějaký text", délka)</code>, kde <code>délka</code> je celé kladné číslo nebo <code>-1</code>, nastaví obsah vyrovnávací paměti prvních <code>délka</code> znaků z textu <code>"nějaký text"</code>. Jestliže je <code>délka</code> vynechána nebo <code>-1</code>, je text vložen celý. Pokud byl ve vyrovnávací paměti před tím nějaký obsah, je zlikvidován.</p></item>
<item><p><code>insert(iterátor, "nějaký text", délka)</code>, kde <code>iterárot</code> je textový iterátor a <code>délka</code> je celé kladné číslo nebo <code>-1</code>, vloží do vyrovnávací paměti na pozici danou <code>iterátorem</code> prvních <code>délka</code> znaků z textu <code>"nějaký text"</code>. Jestliže je <code>délka</code> vynechána nebo je <code>-1</code>, je text vložen celý.</p></item>
<item><p><code>insert_at_cursor("nějaký text", délka)</code> dělá to stejné, co <code>insert(iterátor, "nějaký text", délka)</code> s tím, že aktuální kurzor se vezme jako <code>iterátor</code>.</p></item>
<item><p><code>create_mark("název_značky", iterátor, přitahovat_vlevo)</code>, kde <code>iterátor</code> je <code>Gtk.TextIter</code> a <code>přitahovat_vlevo</code> je pravdivostní hodnota, vytvoří značku <code>Gtk.TextMark</code> na pozici <code>iterátor</code>. Pokud je <code>"název_značky"</code> zadán jako <code>None</code>, je značka anonymní, v opačném případě ji lze získat pomocí <code>get_mark()</code>. Když je přitahována vlevo, a na místo aktuální značky je vkládán text, posouvá se značka nalevo od nově vkládaného textu. V případe, že je <code>přitahovat_vlevo</code> vynecháno, je výchozí hodnotou <code>False</code>.</p></item>
<item><p>Abyste nějakému textu ve vyrovnávací paměti určili konkrétní formát, musíte nadefinovat značku (<code>tag</code>), která si bude pamatovat formátovací informace, a pak ji použít na úsek textu pomocí <code>create_tag("název značky", vlastnost)</code> a <code>apply_tag(značka, iterátor_počátku, iterátor_konce)</code>. Například:</p>
<code>
tag = textbuffer.create_tag("orange_bg", background="orange")
textbuffer.apply_tag(tag, start_iter, end_iter)</code>
<p>Následují některé obvyklé styly používané u textu:</p>
<list>
<item><p>Barva pozadí (vlastnost „background“)</p></item>
<item><p>Barva popředí (vlastnost „foreground“)</p></item>
<item><p>Podtržení (vlastnost „underline“)</p></item>
<item><p>Tučné (vlastnost „weight“)</p></item>
<item><p>Kurzíva (vlastnost „style“)</p></item>
<item><p>Přeškrtnutí (vlastnost „strikethrouhg“)</p></item>
<item><p>Zarovnání (vlastnost „justification“)</p></item>
<item><p>Velikost (vlastnosti „size“ a „size-points“)</p></item>
<item><p>Zalamování textu (vlastnost „wrap-mode“)</p></item>
</list>
<p>Můžete také dodatečně konkrétní značky smazat pomocí <code>remove_tag()</code> nebo smazat všechny značky v zadané oblasti zavoláním <code>remove_all_tags()</code>.</p></item>
</list>
<p>Metody pro widget TextIter</p>
<list>
<item><p><code>forward_search(co_hledat, příznaky, omezení)</code> hledá směrem od začátku ke konci <code>co_hledat</code>. Hledání nepokračuje při při dosažení omezení <code>Gtk.TextIter</code>. Parametr <code>příznaky</code> může být nastaven na něco z následujícího, případně i na kombinaci více možností pospojovaných bitovým operátorem OR <code>|</code>: <code>0</code> (musí se shodovat přesně), <code>Gtk.TextSearchFlags.VISIBLE_ONLY</code> (nalezená shoda může být oproti hledanému proložená neviditelným textem), <code>Gtk.TextSearchFlags.TEXT_ONLY</code> (nalezená shoda může mít uvnitř obrázky nebo jiné synovské widgety), <code>Gtk.TextSearchFlags.CASE_INSENSITIVE</code> (text bude porovnáván bez ohledu na velikost písmen). Metoda vrací dvojici obsahující <code>Gtk.TextIter</code> ukazující na začátek shody a na první znak za shodu. Pokud není nic nalezeno, je vráceno <code>None</code>.</p></item>
<item><p><code>backward_search(co_hledat, příznaky, omezení)</code> dělá to stejné jako <code>forward_search()</code>, akorát směrem od konce k začátku.</p></item>
</list>
</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/unstable/GtkTextView.html">GtkTextView</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkTextBuffer.html">GtkTextBuffer</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkTextTag.html">GtkTextTag</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkScrolledWindow.html">GtkScrolledWindow</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/gtk3-Standard-Enumerations.html">Standardní výčtové konstanty</link></p></item>
</list>
</section>
</page>
|