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
|
<?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="treeview_treestore.py" xml:lang="el">
<info>
<title type="text">Προβολή δένδρου (TreeView) με αποθήκη δένδρου (TreeStore) (Python)</title>
<link type="guide" xref="beginner.py#treeview"/>
<link type="seealso" xref="model-view-controller.py"/>
<link type="next" xref="model-view-controller.py"/>
<revision version="0.1" date="2012-06-30" status="draft"/>
<credit type="author copyright">
<name>Marta Maria Casetti</name>
<email its:translate="no">mmcasetti@gmail.com</email>
<years>2012</years>
</credit>
<desc>Μια προβολή δένδρου (TreeView) που εμφανίζει μια αποθήκη δένδρου (TreeStore) (απλό παράδειγμα)</desc>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Ελληνική μεταφραστική ομάδα GNOME</mal:name>
<mal:email>team@gnome.gr</mal:email>
<mal:years>2012-2015</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Δημήτρης Σπίγγος</mal:name>
<mal:email>dmtrs32@gmail.com</mal:email>
<mal:years>2012, 2013</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Μαρία Θουκιδίδου</mal:name>
<mal:email>marablack3@gmail.com</mal:email>
<mal:years>2014</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Θάνος Τρυφωνίδης</mal:name>
<mal:email>tomtryf@gmail.com</mal:email>
<mal:years>2014, 2015</mal:years>
</mal:credit>
</info>
<title>Πιο απλή προβολή δένδρου με αποθήκη καταλόγων</title>
<media type="image" mime="image/png" src="media/treeview_treestore.png"/>
<p>Αυτή η προβολή δένδρου (TreeView) εμφανίζει μια αποθήκη δένδρου (TreeStore).</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 Pango
import sys
books = [["Tolstoy, Leo", "War and Peace", "Anna Karenina"],
["Shakespeare, William", "Hamlet", "Macbeth", "Othello"],
["Tolkien, J.R.R.", "The Lord of the Rings"]]
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="Library", application=app)
self.set_default_size(250, 100)
self.set_border_width(10)
# the data are stored in the model
# create a treestore with one column
store = Gtk.TreeStore(str)
for i in range(len(books)):
# the iter piter is returned when appending the author
piter = store.append(None, [books[i][0]])
# append the books as children of the author
j = 1
while j < len(books[i]):
store.append(piter, [books[i][j]])
j += 1
# the treeview shows the model
# create a treeview on the model store
view = Gtk.TreeView()
view.set_model(store)
# the cellrenderer for the column - text
renderer_books = Gtk.CellRendererText()
# the column is created
column_books = Gtk.TreeViewColumn(
"Books by Author", renderer_books, text=0)
# and it is appended to the treeview
view.append_column(column_books)
# the books are sortable by author
column_books.set_sort_column_id(0)
# add the treeview to the window
self.add(view)
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>Χρήσιμες μέθοδοι για ένα γραφικό στοιχείο TreeView</title>
<p>Το γραφικό στοιχείο TreeView σχεδιάστηκε γύρω από ένα σχέδιο <em>προτύπου/προβολής/ελεγκτή</em>: το <em>πρότυπο</em> αποθηκεύει τα δεδομένα· η <em>Προβολή</em> παίρνει ειδοποιήσεις αλλαγής και εμφανίζει το περιεχόμενο του προτύπου· ο <em>ελεγκτής</em>, τελικά, αλλάζει την κατάσταση του προτύπου και ειδοποιεί την προβολή για αυτές τις αλλαγές. Για περισσότερες πληροφορίες και για μια λίστα χρήσιμων μεθόδων για λίστα TreeModel, δείτε <link xref="model-view-controller.py"/>.</p>
</section>
<section id="references">
<title>Αναφορές API</title>
<p>Σε αυτό το παράδειγμα χρησιμοποιήσαμε τα παρακάτω:</p>
<list>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkTreeView.html">GtkTreeView</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkTreeModel.html">GtkTreeModel</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkTreeStore.html">GtkTreeStore</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.html">GtkCellRendererText</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/unstable/GtkTreeViewColumn.html">GtkTreeViewColumn</link></p></item>
</list>
</section>
</page>
|