Κουμπί (Python) 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): # a window def __init__(self, app): Gtk.Window.__init__(self, title="GNOME Button", application=app) self.set_default_size(250, 50) # a button button = Gtk.Button() # with a label button.set_label("Click me") # connect the signal "clicked" emitted by the button # to the callback function do_clicked button.connect("clicked", self.do_clicked) # add the button to the window self.add(button) # callback function connected to the signal "clicked" of the button def do_clicked(self, button): print("You clicked me!") class MyApplication(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) def do_activate(self): win = MyWindow(self) win.show_all() def do_startup(self): Gtk.Application.do_startup(self) app = MyApplication() exit_status = app.run(sys.argv) sys.exit(exit_status)
Χρήσιμες μέθοδοι για ένα γραφικό στοιχείο κουμπιού

Στη γραμμή 16 το σήμα "clicked" από το κουμπί συνδέεται με τη συνάρτηση επανάκλησης do_clicked() χρησιμοποιώντας widget.connect(signal, callback function). Δείτε για μια πιο λεπτομερή εξήγηση.

Ο set_relief(Gtk.ReliefStyle.NONE) ορίζει σε κανένα τον τύπο αναγλύφου των άκρων του Gtk.Button - καθώς αντιτίθεται στο Gtk.ReliefStyle.NORMAL.

Εάν η ετικέτα του κουμπιού είναι ένα εικονίδιο παρακαταθήκης, ο set_use_stock(True) ορίζει την ετικέτα ως το όνομα του αντίστοιχου εικονιδίου παρακαταθήκης.

Για ορισμό μιας εικόνας (π.χ. μια εικόνα παρακαταθήκης) για το κουμπί button:

image = Gtk.Image() image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON) button.set_image(image)

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

Εάν χρησιμοποιήσουμε set_focus_on_click(False) το κουμπί δεν θα εστιάσει όταν πατηθεί από το ποντίκι. Αυτό μπορεί να είναι χρήσιμο σε θέσεις όπως εργαλειοθήκες, έτσι ώστε η εστίαση του πληκτρολογίου να μην αφαιρεθεί από την κύρια περιοχή της εφαρμογής.

Αναφορές API

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

GtkButton

GtkWindow