# Η εργαλειοθήκη δημιουργήθηκε χρησιμοποιώντας Glade (Python)

Tiffany Antopolski
tiffany.antopolski@gmail.com 2012
Marta Maria Casetti
mmcasetti@gmail.com 2012
Sebastian Pölsterl
sebp@k-d-w.org 2011
Μια γραμμή κουμπιών και άλλα γραφικά συστατικά

# Η γραμμή εργαλείων δημιουργήθηκε χρησιμοποιώντας Glade

Αυτό το παράδειγμα είναι παρόμοιο με , εκτός από τη χρήση Glade για δημιουργία της εργαλειοθήκης σε ένα αρχείο XML .ui.

# Δημιουργία της εργαλειοθήκης με Glade

Για δημιουργία της γραμμής εργαλείων χρησιμοποιώντας το σχεδιαστή διεπαφής Glade:

Άνοιγμα του Glade και αποθήκευση του αρχείου ως toolbar_builder.ui

Στιγμιότυπο της ui του Glade

Στο περιέκτες στα αριστερά, δεξί κλικ στην γραμμή εργαλείων και επιλογή προσθήκη γραφικού συστατικού ως ανώτατου επιπέδου.

Στιγμιότυπο του εικονιδίου της γραμμής εργαλείων στη ui του Glade

Στην καρτέλα γενικά στα κάτω δεξιά, αλλαγή του ονόματος σε γραμμή εργαλείων και εμφάνιση βέλους σε όχι.

Στιγμιότυπο της γενικής καρτέλας

Στην καρτέλα κοινά, ορίστε οριζόντια επέκταση σε ναι.

Στιγμιότυπο της κοινής καρτέλας

Δεξί κλικ στη γραμμή εργαλείων στα πάνω δεξιά και επιλέξτε επεξεργασία. Το παράθυρο επεξεργαστής γραμμής εργαλείων θα εμφανιστεί.

Στιγμιότυπο θέσης δεξιού κλικ για επεξεργασία γραμμής εργαλείων.

Θέλουμε να προσθέσουμε 5 ToolButtons: νέο, άνοιγμα, αναίρεση, πλήρης οθόνη και εγκατάλειψη πλήρους οθόνης. Πρώτα, θα προσθέσουμε το νέο ToolButton.

Στην καρτέλα ιεραρχία, κλικ προσθήκη.

Αλλαγή του ονόματος του ToolItem σε new_button.

Κύλιση προς τα κάτω και ρύθμιση του είναι σημαντικό σε ναι. Αυτό θα προκαλέσει την ετικέτα του ToolButton να εμφανιστεί, όταν προβάλετε τη γραμμή εργαλείων.

Εισάγετε το όνομα ενέργειας: app.new.

Αλλαγή του ετικέτα σε New.

Επιλογή του νέου Id παρακαταθήκης από το πτυσσόμενο μενού, ή πληκτρολογήστε gtk-new.

Επανάληψη των παραπάνω βημάτων για τα υπολειπόμενα ToolButtons, με τις παρακάτω ιδιότητες:

Όνομα | Είναι σημαντικό | Όνομα ενέργειας | Ετικέτα | Id παρακαταθήκης
--- | --- | --- | --- | ---
open_button | Ναι | app.open | Open | gtk-open
undo_button | Ναι | win.undo | Αναίρεση | gtk-undo
fullscreen_button | Ναι | win.fullscreen | Πλήρης οθόνη | gtk-fullscreen
leave_fullscreen_button | Ναι | win.fullscreen | Έξοδος από πλήρη οθόνη | gtk-leave-fullscreen

Κλείσιμο του επεξεργαστή γραμμής εργαλείων.

Όταν το πρόγραμμά μας θα ξεκινήσει στην αρχή, δεν θέλουμε το ToolButton έξοδος από πλήρη οθόνη να είναι ορατό, αφού η εφαρμογή δεν θα είναι σε λειτουργία πλήρους οθόνης. Μπορείτε να το ρυθμίσετε στην καρτέλα κοινά, με κλικ στην ιδιότητα ορατό σε όχι. Το ToolButton θα εξακολουθεί να εμφανίζεται στον σχεδιαστή διεπαφής, αλλά θα συμπεριφέρεται σωστά, όταν το αρχείο φορτώνεται στον κώδικα προγράμματός σας. Σημειώστε ότι η μέθοδος `show_all()` θα αντικαταστήσει αυτή τη ρύθμιση - έτσι στον κώδικα πρέπει να χρησιμοποιήσουμε `show()` ξεχωριστά σε όλα τα στοιχεία.

Ορισμός της ιδιότητας ορατό σε όχι

Αποθήκευση της εργασίας σας και κλείσιμο του Glade.

Το δημιουργημένο αρχείο XML από το Glade εμφανίζεται παρακάτω. Αυτή είναι η περιγραφή της εργαλειοθήκης. Τη στιγμή της εγγραφής, η επιλογή προσθήκης στην κλάση Gtk.STYLE_CLASS_PRIMARY_TOOLBAR στην διεπαφή Glade δεν υπάρχει. Μπορούμε χειροκίνητα να το προσθέσουμε στο αρχείο XML. Για να το κάνουμε, προσθέστε τον παρακάτω κώδικα XML στη γραμμή 9 του toolbar_builder.ui:

<style> <class name="primary-toolbar"/> </style>

Εάν δεν το προσθέσετε, το πρόγραμμα θα εξακολουθήσει να δουλεύει υπέροχα. Η τελική εργαλειοθήκη όμως θα φαίνεται ελαφρά διαφορετική τότε από το στιγμιότυπο στην κορυφή αυτής της σελίδας.

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

Τώρα δημιουργούμε τον παρακάτω κώδικα, που προσθέτει την εργαλειοθήκη από το αρχείο που μόλις δημιουργήσαμε.

# Χρήσιμες μέθοδοι για Gtk.Builder

Για τις χρήσιμες μεθόδους για ένα γραφικό συστατικό εργαλειοθήκης, δείτε

Το Gtk.Builder κατασκευάζει μια διεπαφή από έναν ορισμό UI XML.

Η `add_from_file(filename)` φορτώνει και αναλύει το δεδομένο αρχείο και το συγχωνεύει με τα τρέχοντα περιεχόμενα του Gtk.Builder.

Η `add_from_file(string)` φορτώνει την δεδομένη συμβολοσειρά και το συγχωνεύει με τα τρέχοντα περιεχόμενα του Gtk.Builder.

Η `add_objects_from_file(filename, object_ids)` είναι η ίδια με `add_from_file()`, αλλά φορτώνει μόνο τα αντικείμενα με τις ταυτότητες που δίνονται στη λίστα `object_id`.

Η `add_objects_from_string(filename, object_ids)` είναι η ίδια με `add_from_string()`, αλλά φορτώνει μόνο τα αντικείμενα με τις ταυτότητες που δίνονται στη λίστα `object_id`.

Η `get_object(object_id)` ανακτά το γραφικό συστατικό με την ταυτότητα `object_id` από τα φορτωμένα αντικείμενα του δομητή.

Η `get_objects()` επιστρέφει όλα τα φορτωμένα αντικείμενα.

Η `connect_signals(handler_object)` συνδέει τα σήματα στις μεθόδους που δίνονται στον `handler_object`. Αυτό μπορεί να είναι οποιοδήποτε αντικείμενο περιέχει κλειδιά ή γνωρίσματα που καλούνται όπως τα ονόματα χειριστή σήματος που δίνονται στην περιγραφή διεπαφής, π.χ. μια κλάση ή ένα λεξικό.

# Αναφορές API

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

GtkGrid

GtkBuilder

GtkWidget

Δομές συμβάντων

Το μάθημα Python Gtk+ 3 - Glade και Gtk.Builder