Δημοσιεύτηκε: 10 Φεβ 2012, 04:39
από sokoban4ever
Εδώ θα βάζουμε όλα τα σχετικά με Python και GTK+ 3
Για documentation στο http://python-gtk-3-tutorial.readthedocs.org/en/latest/
και πληροφορίες εδώ https://live.gnome.org/PyGObject

Πρώτα εγκαθιστάμε τα απαραίτητα από τα αποθετήρια
Κάνουμε
Κώδικας: Επιλογή όλων
sudo apt-get install libgtk-3-0 python-gobject gobject-introspection


Παρακάτω παρουσιάζω ένα παράδειγμα πως χρησιμοποιούμε το Gtk.TreeView
με TreeModel το Gtk.ListStore και
Cell renderer το Gtk.CellRendererText
όπου τοποθετεί τα κρυφά αρχεία του HOME καταλόγου στο TreeView.
Documentation για αυτό εδώ http://python-gtk-3-tutorial.readthedoc ... eview.html

Το Gtk.TreeView το συνδέουμε με κάποιο TreeModel (Model) είτε Gtk.ListStore είτε με Gtk.TreeStore.
έπειτα θέλωντας να εμφανίσουμε τα δεδομένα (View) υπάρχουν οι Cell renderers
όπως ( Gtk.CellRendererText, Gtk.CellRendererPixbuf και Gtk.CellRendererToggle )

Εικόνα

και ο κώδικας
Κώδικας: Επιλογή όλων
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
import commands



def hiddenFFS():
res = []
HiddenFiles=[]
HiddenFiles = commands.getoutput('cd $HOME/ && ls -larh | egrep "^-" | egrep " \.\S*" ')
if len(HiddenFiles) == 0:
return []
HiddenFiles = HiddenFiles.split('\n')
for hidden in HiddenFiles:
tmp = hidden.split(' ')
while tmp.count(''):
tmp.remove('')
res.append(tmp)

return res



class TreeViewExample(Gtk.Window):

def __init__(self):
Gtk.Window.__init__(self)
self.set_title('Kρυφά αρχεία '+ '/home/' + commands.getoutput('whoami'));


HiddenFiles = hiddenFFS()

if HiddenFiles != []:
store = Gtk.ListStore(str,str,str,str,str,str,str,str)
for hidden in HiddenFiles:
store.append(hidden)

Tree = Gtk.TreeView(store)
renderer = Gtk.CellRendererText()


NamesOfColumns = ['Rights','Contains','Owner','Group','Size','Date','Time','Name']
for i,columnName in enumerate(NamesOfColumns):
Tree.append_column(Gtk.TreeViewColumn(columnName, renderer, text = i ))
else:

store = Gtk.ListStore(str)
store.append(['No hidden Files Found under HOME Directory'])
Tree = Gtk.TreeView(store)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Nothing To Show here", renderer, text=0)
Tree.append_column(column)

self.add(Tree)



if __name__ == '__main__':
win = TreeViewExample()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()


Περιμένω παράδειγμα με Gtk.TreeStore ως TreeModel του Gtk.TreeView :)