# Πλέγμα (Python)

Tiffany Antopolski
tiffany.antopolski@gmail.com 2012
Marta Maria Casetti
mmcasetti@gmail.com 2012
Πακετάρισμα γραφικών στοιχείων σε γραμμές και στήλες
Ελληνική μεταφραστική ομάδα GNOME
team@gnome.gr 2012-2015
Δημήτρης Σπίγγος
dmtrs32@gmail.com 2012, 2013
Μαρία Θουκιδίδου
marablack3@gmail.com 2014
Θάνος Τρυφωνίδης
tomtryf@gmail.com 2014, 2015

# Πλέγμα

Μερικές ετικέτες σε ένα πλέγμα.

# Ο χρησιμοποιούμενος κώδικας για παραγωγή αυτού παραδείγματος

from gi.repository import Gtk import sys

class MyWindow(Gtk.ApplicationWindow):

def __init__(self, app): Gtk.Window.__init__(self, title="Grid Example", application=app)

# three labels label_top_left = Gtk.Label(label="This is Top Left") label_top_right = Gtk.Label(label="This is Top Right") label_bottom = Gtk.Label(label="This is Bottom")

# a grid grid = Gtk.Grid()

# some space between the columns of the grid grid.set_column_spacing(20)

# in the grid: # attach the first label in the top left corner grid.attach(label_top_left, 0, 0, 1, 1) # attach the second label grid.attach(label_top_right, 1, 0, 1, 1) # attach the third label below the first label grid.attach_next_to( label_bottom, label_top_left, Gtk.PositionType.BOTTOM, 2, 1)

# add the grid to the window self.add(grid)

class MyApplication(Gtk.Application):

def __init__(self): Gtk.Application.__init__(self)

def do_activate(self): win = MyWindow(self) win.show_all()

app = MyApplication() exit_status = app.run(sys.argv) sys.exit(exit_status)

# Χρήσιμες μέθοδοι για ένα γραφικό στοιχείο πλέγματος

Για να προσαρτήσετε ένα `child` γραφικό στοιχείο σε θέση `left, top` σε μια υποδοχή του δοσμένου `width, height` χρησιμοποιήστε `attach(child, top, left, width, height)`. Εάν ένα `sibling` γραφικό στοιχείο είναι ήδη στη θέση, μπορούμε να χρησιμοποιήσουμε επίσης `attach_next_to(child, sibling, side, width, height)`, όπου `side` είναι ένα από τα `Gtk.PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM`.

`insert_row(position)` και `insert_column(position)` κάνουν ακριβώς ότι λένε· τα θυγατρικά που προσαρτώνται σε αυτή τη θέση ή από κάτω της μετακινούνται μια γραμμή κάτω και τα θυγατρικά που καλύπτουν κατά μήκος αυτή τη θέση επεκτείνονται για να καλύψουν τη νέα γραμμή. `insert_next_to(sibling, side)` εισάγει μια γραμμή ή στήλη στη συγκεκριμένη θέση. Η νέα γραμμή ή στήλη τοποθετείται δίπλα στο `sibling`, στην πλευρά που ορίστηκε από `side`; εάν η πλευρά είναι `Gtk.PositionType.TOP` ή `Gtk.PositionType.BOTTOM`, εισάγεται μια γραμμή, εάν η πλευρά είναι `Gtk.PositionType.LEFT` του `Gtk.PositionType.RIGHT`, εισάγεται μια στήλη.

`set_row_homogeneous(True)` και `set_column_homogeneous(True)` βεβαιώνουν ότι (αντίστοιχα) κάθε γραμμή ή στήλη έχει το ίδιο πλάτος ή ύψος.

`set_row_spacing(spacing)` και `set_column_spacing(spacing)` εξαναγκάζουν ένα διάκενο μεταξύ (αντίστοιχα) γραμμών ή στηλών. Η τιμή του `spacing` μπορεί να είναι μεταξύ `0`, που είναι η προεπιλεγμένη τιμή και `32767`.

# Αναφορές API

Σε αυτό το παράδειγμα χρησιμοποιήσαμε τα παρακάτω:

GtkApplication

GtkApplicationWindow

GtkLabel

GtkImage

GtkGrid