Και στα δύο παραδείγματα θα δημιουργήσουμε μια δικιά μας κλάση βασισμένη στην κλάση Gtk.Window και θα προσθέσουμε σε αυτή ότι θέλουμε.
Αρχίζουμε με τις labels,
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#!/usr/bin/python3
from gi.repository import Gtk
class MyWindow (Gtk.Window):
def __init__ (self):
Gtk.Window.__init__ (self, title="My Window")
self.label = Gtk.Label ("This is a label")
self.add (self.label)
Ονομάζουμε την κλάση μας MyWindow και την ορίζουμε ως υπο-κλάση της Gtk.Window. Στον constructor της δικιάς μας κλάσης πρέπει να καλέσουμε τον constructor της Gtk.Window και πιο συγκεκριμένα του λέμε να θέσει τον τίτλο του παραθύρου σε “My Window”.
Συνεχίζουμε δημιουργώντας μια label. Όι labels δέχονται ως παράμετρο το περίεχομενο τους, δηλαδή τι θα γράφουν σε αυτές. Τέλος προσθέτουμε την label που δημιουργήσαμε στο παράθυρο μας με την εντολή:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
self.add (self.label)
Τον υπόλοιπο κώδικα τον έχουμε ξαναδεί στο προηγούμενο μάθημα με την διαφορά ότι έχω προσθέσει την γραμμή:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
win.set_default_size (100, 100)
ώστε να ορίσει το μέγεθος του παραθύρου σε 100x100 (pixels αν δεν κάνω λάθος)
Ολόκληρος ο κώδικας:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#!/usr/bin/python3
from gi.repository import Gtk
class MyWindow (Gtk.Window):
def __init__ (self):
Gtk.Window.__init__ (self, title="My Window")
self.label = Gtk.Label ("This is a label")
self.add (self.label)
win = MyWindow ()
win.set_default_size (100, 100)
win.connect ('delete-event', Gtk.main_quit)
win.show_all ()
Gtk.main ()
Σειρά έχουν τα κουμπιά!
Ο κώδικας για τα κουμπιά είναι σχεδόν ο ίδιος για αυτό θα τον δώσω τώρα και θα εξηγήσω τις αλλαγές.
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#!/usr/bin/python3
from gi.repository import Gtk
class MyWindow (Gtk.Window):
def __init__ (self):
Gtk.Window.__init__ (self, title="My Window")
self.button = Gtk.Button ("This is a button")
self.button.connect ('clicked', self.on_clicked)
self.add (self.button)
def on_clicked (self, widget):
print ("Button has been clicked!")
win = MyWindow ()
win.set_default_size (100, 100)
win.connect ('delete-event', Gtk.main_quit)
win.show_all ()
Gtk.main ()
Όπως βλέπετε τα μόνα που αλλάζουν είναι ότι χρησιμοποιούμε την γραμμή
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
self.button = Gtk.Button ("This is a button")
για να δημιουργήσουμε ένα κουμπί. Τα κουμπιά μπορούν να δεχτούν ως παραμέτρους την ταμπέλα που θα έχουν, το εικονίδιο και το αν θα χρησιμοποιήσουν underline (το underline είναι το αν θα υπογραμμιστεί κάποιο γράμμα στην ετικέτα για να δείξει ποιο πλήκτρο αποτελεί συντόμευση για το συγκεκριμένο κουμπί).
Στην συνέχεια συνδέσουμε το signal 'clicked' με την συνάρτηση on_clicked. Το signal 'clicked' ενεργοποιείται όταν κάποιος πατάει το κουμπί.
Στην συγκεκριμένη περίπτωση η on_clicked απλά γράφει στην έξοδο "Button has been clicked!".
Αυτά για το δεύτερο μάθημα...
Στο επόμενο μάθημα θα μιλήσουμε για τα containers (Gtk.Box, Gtk.Grid) που σου δίνουν την δυνατότητα να έχεις πολλά αντικείμενα σε ένα παράθυρο με την σειρά που τα θες..