Δημιουργήστε περισσότερες προηγμένες εφαρμογές GUI χρησιμοποιώντας το PyGobject Tool στο Linux - Μέρος 2


Συνεχίζουμε τη σειρά μας σχετικά με τη δημιουργία εφαρμογών GUI κάτω από την επιφάνεια εργασίας Linux χρησιμοποιώντας το PyGObject, Αυτό είναι το δεύτερο μέρος της σειράς και σήμερα θα μιλήσουμε για τη δημιουργία πιο λειτουργικών εφαρμογών χρησιμοποιώντας μερικά προηγμένα γραφικά στοιχεία.

Απαιτήσεις

  1. Δημιουργία εφαρμογών GUI σε Linux χρησιμοποιώντας PyGObject – Μέρος 1

Στο προηγούμενο άρθρο είπαμε ότι υπάρχουν δύο τρόποι για τη δημιουργία εφαρμογών GUI χρησιμοποιώντας το PyGObject: τον τρόπο code-only-way και τον τρόπο σχεδιασμού Glade , αλλά από εδώ και στο εξής, θα εξηγούμε μόνο τον τρόπο σχεδιαστή Glade, καθώς είναι πολύ πιο εύκολο για τους περισσότερους χρήστες, μπορείτε να μάθετε μόνοι σας τον τρόπο με τον κωδικό χρησιμοποιώντας το python-gtk3-tutorial.

Δημιουργία προηγμένων εφαρμογών GUI στο Linux

1. Ας ξεκινήσουμε τον προγραμματισμό! Ανοίξτε τον σχεδιαστή Glade από το μενού εφαρμογών.

2. Κάντε κλικ στο κουμπί "Παράθυρο " στην αριστερή πλαϊνή γραμμή για να δημιουργήσετε ένα νέο.

3. Κάντε κλικ στο γραφικό στοιχείο "Πλαίσιο " και αφήστε το στο κενό παράθυρο.

4. Θα σας ζητηθεί να εισαγάγετε τον αριθμό των πλαισίων που θέλετε, κάντε τον 3.

Και θα δείτε ότι τα πλαίσια έχουν δημιουργηθεί, αυτά τα πλαίσια είναι σημαντικά για εμάς προκειμένου να μπορούμε να προσθέσουμε περισσότερα από 1 γραφικό στοιχείο σε ένα παράθυρο.

5. Τώρα κάντε κλικ στο γραφικό στοιχείο πλαίσιο και αλλάξτε τον τύπο προσανατολισμού από κάθετο σε οριζόντιο.

6. Για να δημιουργήσετε ένα απλό πρόγραμμα, προσθέστε ένα "Εισαγωγή κειμένου ", "Κείμενο σύνθετου πλαισίου " και ένα κουμπί " ” widgets για κάθε ένα από τα κουτιά, θα πρέπει να έχετε κάτι σαν αυτό.

7. Τώρα κάντε κλικ στο γραφικό στοιχείο "window1 " από τη δεξιά πλαϊνή γραμμή και αλλάξτε τη θέση του σε "Κέντρο".

Κάντε κύλιση προς τα κάτω στην ενότητα "Εμφάνιση ". Και προσθέστε έναν τίτλο για το παράθυρο "Το πρόγραμμά μου".

8. Μπορείτε επίσης να επιλέξετε ένα εικονίδιο για το παράθυρο κάνοντας κλικ στο πλαίσιο "Όνομα εικονιδίου".

9. Μπορείτε επίσης να αλλάξετε το προεπιλεγμένο ύψος & πλάτος για την εφαρμογή. Μετά από όλα αυτά, θα πρέπει να έχετε κάτι σαν αυτό.

Σε οποιοδήποτε πρόγραμμα, ένα από τα πιο σημαντικά πράγματα είναι να δημιουργήσετε ένα παράθυρο "About", για να το κάνετε αυτό, πρώτα θα πρέπει να αλλάξουμε το κανονικό κουμπί που δημιουργήσαμε πριν σε ένα κουμπί στοκ. η εικόνα.

10. Τώρα, θα πρέπει να τροποποιήσουμε ορισμένα σήματα για να εκτελούμε συγκεκριμένες ενέργειες όταν συμβαίνει κάποιο συμβάν στα γραφικά στοιχεία μας. Κάντε κλικ στο γραφικό στοιχείο καταχώριση κειμένου, μεταβείτε στην καρτέλα "Σήματα " στη δεξιά πλευρική γραμμή, αναζητήστε το "ενεργοποιημένο " και αλλάξτε τον χειριστή του σε "enter_button_clicked", το σήμα "ενεργοποιημένο" είναι το προεπιλεγμένο σήμα που αποστέλλεται όταν πατηθεί το πλήκτρο "Enter " ενώ εστιάζει στο κείμενο γραφικό στοιχείο εισόδου.

Θα πρέπει να προσθέσουμε έναν άλλο χειριστή για το σήμα «κλικ» για το γραφικό στοιχείο του κουμπιού μας σχετικά, να κάνουμε κλικ σε αυτό και να αλλάξουμε το σήμα «κλικ» σε «button_is_clicked “.

11. Μεταβείτε στην καρτέλα "Κοινά " και σημειώστε "Έχει εστίαση" όπως ακολουθεί (Για να δώσετε την προεπιλεγμένη εστίαση για το κουμπί σχετικά αντί για το λήμμα).

12. Τώρα από την αριστερή πλαϊνή γραμμή, δημιουργήστε ένα νέο παράθυρο "Σχετικά με το διάλογο".

Και θα παρατηρήσετε ότι δημιουργείται το παράθυρο "Σχετικά με το διάλογο".

Ας το τροποποιήσουμε.. Βεβαιωθείτε ότι έχετε εισάγει τις παρακάτω ρυθμίσεις για αυτό από τη δεξιά πλαϊνή γραμμή.

Αφού κάνετε τις παραπάνω ρυθμίσεις, θα ακολουθήσετε το Window.

Στο παραπάνω παράθυρο, θα παρατηρήσετε τον κενό χώρο, αλλά μπορείτε να τον αφαιρέσετε μειώνοντας τον αριθμό των πλαισίων από 3 σε 2 ή μπορείτε να προσθέσετε οποιοδήποτε widget σε αυτό αν θέλετε.

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


#!/usr/bin/python
-*- coding: utf-8 -*-

from gi.repository import Gtk
class Handler:

    def button_is_clicked(self, button):
        ## The ".run()" method is used to launch the about window.
         ouraboutwindow.run()
        ## This is just a workaround to enable closing the about window.
         ouraboutwindow.hide()

    def enter_button_clicked(self, button):
        ## The ".get_text()" method is used to grab the text from the entry box. The "get_active_text()" method is used to get the selected item from the Combo Box Text widget, here, we merged both texts together".
         print ourentry.get_text() + ourcomboboxtext.get_active_text()

## Nothing new here.. We just imported the 'ui.glade' file.
builder = Gtk.Builder()
builder.add_from_file("ui.glade")
builder.connect_signals(Handler())

ournewbutton = builder.get_object("button1")

window = builder.get_object("window1")

## Here we imported the Combo Box widget in order to add some change on it.
ourcomboboxtext = builder.get_object("comboboxtext1")

## Here we defined a list called 'default_text' which will contain all the possible items in the Combo Box Text widget.
default_text = [" World ", " Earth ", " All "]

## This is a for loop that adds every single item of the 'default_text' list to the Combo Box Text widget using the '.append_text()' method.
for x in default_text:
  ourcomboboxtext.append_text(x)

## The '.set.active(n)' method is used to set the default item in the Combo Box Text widget, while n = the index of that item.
ourcomboboxtext.set_active(0)
ourentry = builder.get_object("entry1")

## This line doesn't need an explanation :D
ourentry.set_max_length(15)

## Nor this do.
ourentry.set_placeholder_text("Enter A Text Here..")

## We just imported the about window here to the 'ouraboutwindow' global variable.
ouraboutwindow = builder.get_object("aboutdialog1")

## Give that developer a cookie !
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main

Αποθηκεύστε το αρχείο στον αρχικό σας κατάλογο με αυτό το όνομα «myprogram.py », και δώστε του την άδεια εκτέλεσης και εκτελέστε το.

chmod 755 myprogram.py
./myprogram.py
This is what you will get, after running above script.

Εισαγάγετε ένα κείμενο στο πλαίσιο εισαγωγής, πατήστε το πλήκτρο "Enter " στο πληκτρολόγιο και θα παρατηρήσετε ότι η πρόταση είναι τυπωμένη στο κέλυφος.

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

Απλώς μάθετε τις μεθόδους, δημιουργήστε τα γραφικά στοιχεία χρησιμοποιώντας το Glade και συνδέστε τα σήματα χρησιμοποιώντας το αρχείο Python, Αυτό είναι! Δεν είναι καθόλου δύσκολο φίλε μου.

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