Tkinter ComboBox

Tkinter Combobox



Το πακέτο ttk, μια μοναδική τροποποίηση του Python Tkinter, εισάγει αυτό το πρόσθετο στοιχείο. Το Python Tkinter ComboBox εμφανίζει κάθε επιλογή από ένα αναπτυσσόμενο μενού 1 κάθε στιγμή. Έχει μια σύγχρονη εμφάνιση, καθιστώντας το κατάλληλο για τοποθεσίες όπου η έκθεση είναι ζωτικής σημασίας. Το gadget Entry είναι μια ικανότητα κλάσης του Python ComboBox. Ως αποτέλεσμα, προσθέτει μερικές πρόσθετες επιλογές και λειτουργίες, ενώ κληρονομεί επίσης αρκετές από την κλάση Entry.

Ένα κρίσιμο widget που μπορεί να εμφανιστεί σε πολλά προγράμματα είναι το ComboBox. Δίνεται στον χρήστη μια λίστα εναλλακτικών λύσεων για να επιλέξει. Έχει πολλές τιμές και εμφανίζει μόνο μία κάθε στιγμή. Το σημερινό σεμινάριο θα καλύψει τον τρόπο χρήσης του ComboBox στο Linux χρησιμοποιώντας το Tkinter.

Παράδειγμα 1:

Ας ξεκινήσουμε με το πρώτο παράδειγμα της ενότητας Tkinter στην Python. Δημιουργούμε ένα νέο αρχείο Python με την επέκταση «py» μέσω της κονσόλας τερματικού. Μετά από αυτό, μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας της επιλογής σας για να ανοίξετε το νέο αρχείο Python που δημιουργήθηκε από τον εξερευνητή αρχείων. Ξεκινάμε αυτόν τον κώδικα Python με την εισαγωγή της βιβλιοθήκης Tkinter στον κώδικα μαζί με όλα τα υπο-αντικείμενα, τις κλάσεις και τις ενσωματωμένες οντότητες της.







Εισάγουμε το αντικείμενο ttk του για να χρησιμοποιηθεί στον κώδικα. Αρχικά, καλούμε τη συνάρτηση Tk() του Tkinter για να προσθέσουμε μια νέα τιμή για το αντικείμενο 't'. Το αντικείμενο 't' χρησιμοποιείται για την κλήση της συνάρτησης γεωμετρίας για τη δημιουργία μιας γραφικής διεπαφής χρήστη '200×150'. Σε αυτό το πρώτο παράδειγμα, χρησιμοποιούμε τη μέθοδο «frame()» του Tkinter για να δημιουργήσουμε ένα πλαίσιο GUI στην οθόνη της κονσόλας. Το αντικείμενο 'f' του πλαισίου είναι κλειστό εδώ χρησιμοποιώντας τη συνάρτηση Tkinter pack().



Μετά από αυτό, δημιουργούμε μια λίστα 'l' τύπων συμβολοσειρών που περιέχει συνολικά 5 τιμές συμβολοσειρών σε αυτήν. Μετά από αυτό, χρησιμοποιούμε το αντικείμενο Tkinter ttk για να καλέσουμε τη συνάρτηση ComboBox του Tkinter μέσα στο πλαίσιο 'f'. Η λίστα 'l' μεταβιβάζεται σε αυτό. Αυτό το ComboBox αποθηκεύεται στη μεταβλητή 'C'. Ρυθμίζουμε την ετικέτα για το ComboBox χρησιμοποιώντας τη λειτουργία 'set' και συσκευάζουμε το ComboBox με ακριβείς επενδύσεις. Τώρα, εκτελούμε τη συνάρτηση mainloop() για να εκτελέσουμε το συνολικό πρόγραμμα Tkinter.







Αφού ολοκληρώσουμε το σενάριο Python, αποθηκεύουμε τον κώδικα με Ctrl+S και επιστρέφουμε στην κονσόλα του κελύφους του συστήματος Linux. Δοκιμάζουμε την εντολή Python3 στο κέλυφος ακολουθούμενη από το όνομα ενός αρχείου Python για να εκτελέσουμε το αρχείο όπως εμφανίζεται στα παρακάτω:

$ python3 test.py



Μετά την εκτέλεση του ερωτήματος, λαμβάνουμε το ακόλουθο Tkinter GUI στην οθόνη της κονσόλας μας με τον τίτλο 'tk'. Η οθόνη GUI περιέχει ένα comboBox, δηλαδή μια αναπτυσσόμενη λίστα, με τον τίτλο 'Επιλέξτε 1 χρώμα' και ένα τριγωνικό σύμβολο για να το ανοίξετε.

Αφού πατήσετε στο σύμβολο του τριγώνου, εμφανίζεται η μεγάλη αναπτυσσόμενη λίστα με όλες τις διαθέσιμες επιλογές. Μπορείτε να δείτε ότι έχουμε συνολικά 5 διαθέσιμες επιλογές για να διαλέξετε.

Ας υποθέσουμε ότι επιλέγετε το χρώμα 'Μαύρο' από την αναπτυσσόμενη λίστα. Θα δείτε ότι το επιλεγμένο χρώμα εμφανίζεται στην περιοχή τίτλου ενός αναπτυσσόμενου ComboBox. Η λίστα που απομένει είναι κρυμμένη.

Παράδειγμα 2:

Ας ρίξουμε μια ματιά σε ένα άλλο παράδειγμα χρησιμοποιώντας μια διαφορετική μέθοδο για τη δημιουργία ενός ComboBox στο Tkinter αυτή τη φορά. Έτσι, ξεκινάμε αυτόν τον κώδικα Python με την εισαγωγή της ενότητας Tkinter στο ίδιο αρχείο Python ως 'tk' μαζί με την εισαγωγή της κλάσης ttk αυτής. Μετά από αυτό, εισάγουμε τη συνάρτηση showinfo() από την κλάση πλαισίου μηνύματος της λειτουργικής μονάδας Tkinter. Επίσης, εισάγουμε τη μεταβλητή month_name από τη μονάδα ημερολογίου της Python.

Καλούμε τη συνάρτηση tk() με το αντικείμενο tk της μονάδας Tkinter και αποθηκεύουμε το αποτέλεσμα του κατασκευαστή στη μεταβλητή «t». Η συνάρτηση γεωμετρίας καλείται με καθορισμένες παραμέτρους για τη δημιουργία ενός GUI του Tkinter με συγκεκριμένο μέγεθος. Η συνάρτηση title() καλείται με μια παράμετρο 'Combobox Illustration' για τον τίτλο του Tkinter GUI και η συνάρτηση Label από την κλάση ttk για τη δημιουργία μιας ετικέτας 'l'. Η λειτουργία συσκευασίας χρησιμοποιείται για την πλήρωση της ετικέτας 'l'. Η μεταβλητή 'mn' δημιουργείται με τη συνάρτηση StringVar() της κλάσης 'tk'. Το ComboBox 'mcb' δημιουργείται χρησιμοποιώντας τη συνάρτηση ComboBox και το κείμενο μεταβλητής 'mn'. Το mcb ComboBox είναι γεμάτο με τιμές συμβολοσειράς έως και 13 μέσω της μεταβλητής month_name που χρησιμοποιείται στον βρόχο 'for'.

Η κατάσταση για το ComboBox 'mcb' έχει οριστεί σε μόνο για ανάγνωση και είναι γεμάτο. Η συνάρτηση select() δημιουργείται για να καλέσει τη συνάρτηση showinfo() για να δημιουργήσει ένα πλαίσιο διαλόγου ειδοποίησης με τον τίτλο 'Επιβεβαίωση' και ένα μήνυμα 'Επιλέξατε {όποια κι αν είναι η τιμή}'. Η συνάρτηση bind() καλείται με το ComboBox «mcb» προσθέτοντας τις παραμέτρους «ComboboxSelected» και τη συνάρτηση «αλλαγή». Η συνάρτηση mainloop() εκτελείται για να εξαλειφθεί το πρόγραμμα Tkinter. Ας το αποθηκεύσουμε πρώτα πριν το τρέξουμε.

Εκτελούμε αυτό το αρχείο χρησιμοποιώντας το ερώτημα python3.

$ Πύθων 3 test.py

Η ακόλουθη οθόνη Tkinter με το όνομα 'ComboBox illustration' εμφανίζεται στα ακόλουθα:

Όταν κάνουμε κλικ στο σύμβολο του τριγώνου ComboBox κάτω από τον τίτλο 'Επιλέξτε έναν μήνα', εμφανίζει τα ονόματα ενός μήνα.

Όταν επιλέγουμε «Ιούλιος», εμφανίζεται στην ετικέτα και εμφανίζεται η ειδοποίηση διαλόγου και εμφανίζεται ένα μήνυμα. Πατήστε ΟΚ για να συνεχίσετε.

συμπέρασμα

Όλα αυτά αφορούν τη χρήση της λειτουργικής μονάδας Tkinter της Python για τη δημιουργία ενός comboBox στο παράθυρο του GUI. Για αυτό, δοκιμάσαμε δύο απλά αλλά διαφορετικά παραδείγματα Python για να πετύχουμε τον στόχο χρησιμοποιώντας τη συνάρτηση frame() και τον συμβατικό τρόπο δημιουργίας του comboBox στο GUI. Ενσωματώσαμε τα δείγματα κωδικών και για τις δύο περιπτώσεις και κάναμε μερικές αλλαγές μετά την εκτέλεση των κωδικών.