Bar Kemajuan Tkinter

Bar Kemajuan Tkinter

Anda boleh mengemas kini klien tentang status proses yang panjang dengan widget bar kemajuan. Matlamat widget adalah untuk memberikan keyakinan pengguna bahawa sesuatu sedang berlaku. Ia mempunyai dua mod operasi yang berbeza. Apabila dalam mod penentu, widget memaparkan petunjuk yang bergerak dalam arah yang telah ditetapkan. Widget dialihkan dalam keadaan tidak tentu untuk membolehkan pelanggan tanggapan bahawa sesuatu sedang berlaku. Isyarat berayun ke sana ke mari antara hujung widget sepanjang gaya ini. Penggunaan bar kemajuan tentu dan tak tentu dalam Python akan diliputi dalam tutorial ini.

Mari kita mulakan dengan konfigurasi perpustakaan Tkinter Python. Selepas pelancaran terminal berjaya, cuba pertanyaan berikut untuk mengkonfigurasi pakej Tkinter. Pastikan Python sudah dipasang sebelum menggunakan arahan ini.

$ sudo apt pasang python3-tk



Contoh 1

Mari kita mulakan dengan contoh pertama Python kami untuk menggunakan modul Tkinter untuk mencipta bar kemajuan yang pasti pada GUInya. Oleh itu, kami telah mencipta fail Python baharu bernama “new.py” dan menambah kod berikut. Kami memulakan kod ini dengan mengimport semua objek kanak-kanak dari perpustakaan Tkinter Python pada baris pertama. Selepas itu, kami mengimport objek kelas 'ttk' daripada modul Tkinter dalam baris kedua kod.



Pembina kelas Tk() telah dipanggil dan disimpan objeknya dalam pembolehubah 't'. Fungsi 'tajuk' telah dicapai dengan pembolehubah objek 't' untuk mencipta tajuk untuk GUI. Saiz tetingkap GUI Tkinter telah ditetapkan kepada '300×200' melalui fungsi geometri(). Bar kemajuan akan dijana oleh fungsi yang ditentukan pengguna 'Pbar()'. Kami akan melihat fungsi ini di bahagian akhir artikel ini.



Kami telah mencipta pembolehubah 'p' pada 8 ke baris kod Python ini yang telah menggunakan fungsi Progressbar() melalui objek kelas 'ttk' untuk mencipta bar kemajuan pada skrin GUI. Objek 't' telah dihantar kepadanya manakala orientasinya telah ditetapkan kepada Mendatar, panjangnya ditetapkan kepada 400, dan modnya adalah ditentukan, iaitu, ia akan bergerak ke arah tertentu sahaja. Pelapik paksi 'y' telah ditetapkan kepada 30 dengan menggunakan fungsi 'pack()' untuk bar kemajuan ini.

Selepas ini, kami telah mencipta butang baharu 'b' dengan menggunakan fungsi Button() dan menghantarnya objek 't', beberapa teks, dan arahan yang akan dilaksanakan selepas mengklik pada butang, iaitu, fungsi yang dipanggil fungsi 'Pbar'. Fungsi Pbar() akan menambah nilai bar kemajuan 'p' sebanyak sepuluh dan kembali kepada pembolehubah 'b'. Pelapik paksi 'y' untuk butang telah ditetapkan kepada '10' menggunakan fungsi pack() dan fungsi mainloop() ada di sini untuk menggelungkan keseluruhan pelaksanaan.



Selepas melengkapkan kod Python, kami menyimpannya dan melaksanakannya pada konsol melalui pertanyaan 'python3' diikuti dengan nama fail 'new.py':

$ python3 new.py

Ia telah melancarkan Tkinter GUI Python dengan tajuk 'Progress Bar' pada skrin konsol kami. Dalam imej berikut, hanya terdapat bar kemajuan tanpa pemprosesan. Anda perlu mengetik butang terlebih dahulu.

Selepas mengetik butang, 'Ketik di sini!', bar kemajuan biru telah ditunjukkan seperti berikut:

Selepas tiga klik berturut-turut, kami menerima kemajuan berikut tanpa pergerakan:

Selepas mencapai penghujung bar kemajuan, kami tidak boleh bergerak lebih jauh, iaitu, menentukan bar kemajuan.

Contoh 2

Mari kita lihat mencipta bar kemajuan tidak tentu yang boleh bergerak ke belakang dan ke hadapan dalam kawasan kemajuan menggunakan modul Python GUI Tkinter. Jadi, kami telah memulakan kod Python ini dengan mengimport modul Tkinter sebagai'tk' dan objek ttk daripada kelas 'ttk'. Objek tk telah dibuang untuk mendapatkan hasil pembina 'Tk()' dan disimpan ke pembolehubah 't'.

Pembolehubah 't' telah digunakan dengan fungsi title() untuk menambah tajuk untuk GUI bersama fungsi geometri() untuk menentukan saiz tetingkap GUI yang akan dipaparkan. Fungsi grid() telah dipanggil dengan pembolehubah 't' untuk mengatur GUI dalam format jadual.

Selepas itu, kami telah menggunakan pembolehubah 'p' untuk mencipta bar kemajuan melalui fungsi Progressbar() objek kelas ttk dengan pembolehubah 't' yang sama, orientasi mendatar, 300 panjang dan mod tak tentu. Bar kemajuan telah disusun mengikut jadual melalui fungsi 'grid()' yang telah menggunakan padding khusus untuk paksi 'x' dan 'y'. Kami telah mencipta dua butang, 's' dan 'e', untuk memulakan pergerakan bar kemajuan, menamatkannya dan mengalihkannya ke depan dan ke belakang.



Parameter melekit bagi fungsi grid() untuk kedua-dua butang mentakrifkan arah, iaitu, Timur dan Barat. Arahan, 'mula' dan 'berhenti', telah ditetapkan untuk kedua-dua butang pada 9 ke dan 11 ke barisan. Dengan pelaksanaan fungsi mainloop(), program kami telah selesai dan sedia untuk digunakan selepas menyimpannya.





Pelaksanaan telah berlaku menggunakan cara yang sama.

$ python3 new.py

Pada GUI dilancarkan, skrin berikut telah dibentangkan:



Selepas menekan butang 'Ketik untuk Mula', bar kemajuan mula bergerak ke hadapan.

Selepas sampai ke penghujung, ia bergerak ke arah yang bertentangan, iaitu, Barat.

Setelah selesai mengetik butang 'Ketik untuk Berhenti', bar kemajuan telah ditetapkan pada kedudukan awal sekali lagi.

Kesimpulan

Artikel ini menunjukkan penggunaan bar kemajuan dalam GUI Tkinter. Kami hanya menggunakan objek kelas Tkinter untuk memanggil widget yang berbeza untuk menjadikan GUI Python lebih interaktif. Kami telah membincangkan menggunakan bar kemajuan yang pasti dan tidak tentu dalam contoh kami. Kami harap anda menikmati melaksanakannya.