Tkinter Progress Bar

Tkinter Progress Bar



Μπορείτε να ενημερώσετε τον πελάτη σχετικά με την κατάσταση μιας μακράς διαδικασίας με ένα γραφικό στοιχείο γραμμής προόδου. Ο στόχος του widget είναι να παρέχει στον χρήστη εμπιστοσύνη ότι κάτι συμβαίνει. Έχει δύο διαφορετικούς τρόπους λειτουργίας. Όταν βρίσκεται σε καθορισμένη λειτουργία, το γραφικό στοιχείο εμφανίζει μια ένδειξη που ταξιδεύει σε μια προκαθορισμένη κατεύθυνση. Το γραφικό στοιχείο μετακινείται σε απροσδιόριστη κατάσταση για να δώσει στον πελάτη την εντύπωση ότι κάτι συμβαίνει. Το σήμα ταλαντεύεται εμπρός και πίσω μεταξύ των άκρων του γραφικού στοιχείου σε όλο αυτό το στυλ. Η χρήση καθορισμένων και απροσδιόριστων γραμμών προόδου στην Python θα καλυφθεί σε αυτό το σεμινάριο.

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

$ sudo apt εγκατάσταση python3-tk







Παράδειγμα 1

Ας ξεκινήσουμε με το πρώτο μας παράδειγμα Python για να χρησιμοποιήσουμε τη λειτουργική μονάδα Tkinter για να δημιουργήσουμε μια καθορισμένη γραμμή προόδου στο GUI της. Έτσι, δημιουργήσαμε ένα νέο αρχείο Python με το όνομα “new.py” και προσθέσαμε τον ακόλουθο κώδικα. Ξεκινήσαμε αυτόν τον κώδικα εισάγοντας όλα τα θυγατρικά αντικείμενα από τη βιβλιοθήκη Tkinter της Python στην πρώτη γραμμή. Μετά από αυτό, εισαγάγαμε το αντικείμενο κλάσης «ttk» από τη λειτουργική μονάδα Tkinter στη δεύτερη γραμμή κώδικα.



Ο κατασκευαστής κλάσης Tk() κλήθηκε και αποθηκεύτηκε το αντικείμενό του στη μεταβλητή 't'. Η συνάρτηση 'τίτλος' έχει επιτευχθεί με τη μεταβλητή αντικειμένου 't' για τη δημιουργία ενός τίτλου για το γραφικό περιβάλλον εργασίας. Το μέγεθος ενός παραθύρου GUI Tkinter έχει οριστεί σε '300×200' μέσω της συνάρτησης geometry(). Η γραμμή προόδου θα δημιουργηθεί από μια συνάρτηση 'Pbar()' που ορίζεται από το χρήστη. Θα ρίξουμε μια ματιά σε αυτήν τη λειτουργία στο τελευταίο μέρος αυτού του άρθρου.



Δημιουργήσαμε μια μεταβλητή 'p' στο 8 ου γραμμή αυτού του κώδικα Python που χρησιμοποιεί τη συνάρτηση Progressbar() μέσω του αντικειμένου κλάσης «ttk» για να δημιουργήσει μια γραμμή προόδου στην οθόνη του GUI. Το αντικείμενο 't' έχει μεταβιβαστεί σε αυτό, ενώ ο προσανατολισμός του έχει οριστεί σε Οριζόντια, το μήκος του έχει οριστεί σε 400 και η λειτουργία του είναι καθορισμένη, δηλαδή, θα κινείται μόνο προς μια συγκεκριμένη κατεύθυνση. Η συμπλήρωση του άξονα 'y' έχει οριστεί στο 30 με τη χρήση της συνάρτησης 'pack()' για αυτήν τη γραμμή προόδου.





Μετά από αυτό, δημιουργούμε ένα νέο κουμπί 'b' χρησιμοποιώντας τη συνάρτηση Button() και του περνάμε το αντικείμενο 't', κάποιο κείμενο και την εντολή που πρέπει να εκτελεστεί αφού κάνουμε κλικ στο κουμπί, δηλ., η συνάρτηση που ονομάζεται τη συνάρτηση «Pbar». Η συνάρτηση Pbar() θα αυξάνει την τιμή της γραμμής προόδου 'p' κατά δέκα και θα επιστρέφει στη μεταβλητή 'b'. Η συμπλήρωση του άξονα 'y' για το κουμπί έχει οριστεί σε '10' χρησιμοποιώντας τη συνάρτηση pack() και η συνάρτηση mainloop() είναι εδώ για να αποκλείσει ολόκληρη την εκτέλεση.



Αφού ολοκληρώσαμε έναν κώδικα Python, τον αποθηκεύσαμε και τον εκτελέσαμε στην κονσόλα μέσω του ερωτήματος 'python3' ακολουθούμενο από το όνομα ενός αρχείου 'new.py':

$ python3 new.py

Έχει κυκλοφορήσει το Tkinter GUI της Python με τον τίτλο 'Progress Bar' στην οθόνη της κονσόλας μας. Στην παρακάτω εικόνα, υπάρχει μόνο μια γραμμή προόδου χωρίς επεξεργασία. Πρέπει πρώτα να πατήσετε το κουμπί.

Αφού πατήσετε το κουμπί «Πατήστε εδώ!», εμφανίζεται η μπλε γραμμή προόδου ως εξής:

Μετά από τρία συνεχόμενα κλικ, λάβαμε την ακόλουθη πρόοδο χωρίς κίνηση:

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

Παράδειγμα 2

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



Η μεταβλητή 't' έχει χρησιμοποιηθεί με τη συνάρτηση title() για να προσθέσει έναν τίτλο για το γραφικό περιβάλλον παράλληλα με τη συνάρτηση geometry() για να καθορίσει το μέγεθος ενός παραθύρου GUI που θα εμφανιστεί. Η συνάρτηση grid() έχει κληθεί με τη μεταβλητή 't' για να οργανωθεί το γραφικό περιβάλλον σε μορφή πίνακα.

Μετά από αυτό, χρησιμοποιήσαμε τη μεταβλητή 'p' για να δημιουργήσουμε μια γραμμή προόδου μέσω της συνάρτησης Progressbar() του αντικειμένου κλάσης ttk με την ίδια μεταβλητή 't', οριζόντιο προσανατολισμό, μήκη 300 και την απροσδιόριστη λειτουργία. Η γραμμή προόδου έχει οργανωθεί με πίνακα μέσω της συνάρτησης “grid()” που χρησιμοποιεί το συγκεκριμένο padding για τον άξονα “x” και “y”. Έχουμε δημιουργήσει δύο κουμπιά, «s» και «e», για την έναρξη της κίνησης της γραμμής προόδου, το τέλος της και τη μετακίνηση της μπρος-πίσω.







Η κολλώδης παράμετρος της συνάρτησης grid() και για τα δύο κουμπιά καθορίζει την κατεύθυνση, δηλ. Ανατολή και Δύση. Οι εντολές 'start' και 'stop' έχουν ρυθμιστεί και για τα δύο κουμπιά στο 9 ου και 11 ου γραμμή. Με την εκτέλεση της συνάρτησης mainloop(), το πρόγραμμά μας έχει ολοκληρωθεί και είναι έτοιμο για χρήση μετά την αποθήκευσή του.





Η εκτέλεση έχει γίνει με παρόμοιο τρόπο.





$ python3 new.py

Κατά την εκκίνηση του GUI, παρουσιάστηκε η ακόλουθη οθόνη:



Αφού πατήσετε το κουμπί «Πατήστε για έναρξη», η γραμμή προόδου άρχισε να κινείται προς τα εμπρός.

Αφού φτάσει στο τέλος, κινείται προς την αντίθετη κατεύθυνση, δηλαδή προς τη Δύση.

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

συμπέρασμα

Αυτό το άρθρο έδειξε τη χρήση της γραμμής προόδου στο Tkinter GUI. Απλώς χρησιμοποιήσαμε τα αντικείμενα της κλάσης Tkinter για να καλέσουμε διαφορετικά widget για να κάνουμε το Python GUI πιο διαδραστικό. Έχουμε συζητήσει τη χρήση καθορισμένων και απροσδιόριστων γραμμών προόδου στα παραδείγματά μας. Ελπίζουμε να απολαύσετε την εφαρμογή τους.