Cara membuat progress bar pada window GUI python menggunakan PySide

Belajarpython - assalamualaikum wr. wb.

Jumpa lagi nih temen - temen.. Pada postingan kali ini saya akan mencoba untuk membagikan postingan mengenai python nih.. Lebih tepatnya mengenai GUI python yang menggunakan library dari PySide. Nah bagi kalian yang belum menginstall PySide, kalian bisa menginstall nya terlebih dahulu... Dan jika kalian belum tau atau kesusahan saat menginstall library PySide ini, kalian bisa membaca postingan saya sebelumnya... Yang membahas mengenai tutuorial penginstalan PySide. Untuk membaca nya, kalian bisa KLIK DISINI.

Nah setelah kalian menginstall PySide, yuk langsung saja kita lanjut pembahasan postingan saya kali ini.. Yaitu tentang pembuatan sebuah progress bar.. Nah sudah tau kan apa itu progress bar ? Ya progress bar adalah sebuah kolom yang menampilkan sebuah proses. Lalu bagaimakah cara membuat progress bar ini ? Yuk langsung saja simak pembahasan saya di bawah ini...

Apa itu Progress Bar ?

Nah sebelum saya memulai atau sebelum membagikan program untuk membuat progress bar, saya akan terlebih dahulu menjelaskan serta memberikan contoh mengenai apa yang dimaksud dengan Progress Bar itu sendir.. Karena saya takut jika ada yang masih belum mengetahui apa yang disebut dengan progress bar itu sendiri...

Jadi, seperti yang sudah saya katakan sebelumnya, status bar ini merupakan sebuah tampilan yang memiliki tujuan untuk memberikan sebuah informasi bagi user atau pengguna jika aplikasi kita sedang melakukan sebuah proses. Baik proses, upload, download, copy maupun proses yang lainnya temen - temen..

Nah, progress bar ini, sudah banyak digunakan oleh aplikasi - aplikasi bersekala kecil maupun besar... Seperti file explorer milik windows, scanning virus, google chrome, proses install dan masih banyak aplikasi - aplikasi lain yang menggunakannya. Nah untuk lebih mengetahui dan lebih membuat kalian lebih paham, berikut saya sertakan screenshoot dari porgress bar ini.. Yuk langsung saja kita simak screenshoot nya di bawah ini...


Nah itu dia temen - temen contoh mengenai progress bar ini..  screenshoot diatas saya ambil dari aplikasi “file explorer” milik windows dan “windows defender” saat melakukan scanning. Sudah paham kan temen - temen.. Ya saya rasa sudah jelas ya.. Hehe jadi saya yakin kalian sudah tau dan paham mengenai progress bar ini..

Cara membuat ProgressBar pada GUI window python menggunakan library PySide.

Nah setelah kita belajar dan membaca apa yang dimaksud dengan Progress bar yang akan kita bahas pada postingan kali ini, maka selanjutnya saya akan mencoba untuk mengajak kalian untuk membuat progress bar ini.. Nah gimana ? Sudah pada tau belum cara membuat status bar ini ? Nah jika belum tau, yuk silahkan simak dan coba program atau code program yang sudah mengandung perintah pembuatan progress bar di bawah ini...

from PySide import QtGui, QtCore

class MembuatProgressBar(QtGui.QWidget):
    
    def __init__(self):
        super(MembuatProgressBar, self).__init__()
        
        self.initUI()
        
    def initUI(self):
        self.progressBar()
        self.tombol()

        self.penghitung = QtCore.QBasicTimer()
        self.posisi = 0
        
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('QtGui.QProgressBar')

    def progressBar(self):
        self.progressBar = QtGui.QProgressBar(self)
        self.progressBar.setGeometry(30, 40, 200, 20)

    def tombol (self) :
        self.tombol = QtGui.QPushButton('Start', self)
        self.tombol.move(40, 80)
        self.tombol.clicked.connect(self.perintah)
        
    def timerEvent(self, e):
        if self.posisi >= 100:
            self.penghitung.stop()
            self.tombol.setText('Finished')
            return
        self.posisi = self.posisi + 2
        self.progressBar.setValue(self.posisi)

    def perintah(self):
        if self.penghitung.isActive():
            self.penghitung.stop()
            self.tombol.setText('Start')
        else:
            self.penghitung.start(100, self)
            self.tombol.setText('Stop')


if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    ex = MembuatProgressBar()
    ex.show()
sys.exit(app.exec_())



Nah itu dia programnya temen - temen.. Menurut saya sih cukup panjan dan cukup rumit sih.. Bagaimana menurut kalian temen - temen ? Hehe tergantung kalian ya... Lalu bagaimana ya hasil running atau GUI yang dihasilkan seteleh program diatas kita jalankan ? Nah untuk mengetahui nya, yuk langsung saja kita simak sama - sama contoh screenshoot di bawah ini...



Nah itu dia temen - temen contoh screenshoot ketika kita jalankan programnya... Bisa kita lihat disana temen - temen.. Saat pertama muncul windownya akan tampak seperti pada no 1. Dan saat kondisi berjalan, windownya akan tampak seperti pada screenshoot no. 2. Dan ketika prosesnya selesai maka akan tampak seperti pada screenshoot no. 3. Nah sudah jelaskan temen - temen ? Ya saya rasa sudah jelas ya temen - temen...

Penjelasan menegenai program pembuat Progress Bar pada GUI window python menggunakan library PySide.

Nah setelah saya membagikan program untuk membuat progress bar pada GUI window python yang menggunakan library python, serta telah melihat contoh ketika programnya di jalankan, maka selanjuntnya saya akan mencoba untuk menjelaskan progam yang sudah saya bagikan diatas.. Dengan harapan dapat membantu kalian untuk memahami programnya.. Yang kemudian dapat memanfaatkan fitur progress bar ini... Yuk langsung saja kita simak penjelasan saya pada di bawah ini...


from PySide import QtGui, QtCore  //code ini digunakan untuk mengimport QtGui dan QtCore dari library PySide.

class MembuatProgressBar(QtGui.QWidget):  //ini merupakan code untuk membuat sebuah class yang  yang akan menampung semua komponen dari window yang akan saya buat nantinya. Dan saya beri nama classnya dengan naman “MembuatProgressBar”.

    def __init__(self):  //ini merupakan sebuah konstruktor yang akan di akses secara otomatis dan pertama kali ketika class “MembuatProgressBar” kita panggil nantinya.
        super(MembuatProgressBar, self).__init__() //code ini digunakan untuk memebuat class “MembuatProgressBar” menjadi sebuah gui.

        self.initUI()  //code ini digunakan untuk memanggilkan sebuah fungsi atau metode dengan nama “initUI”

    def initUI(self):  //code ini merupakan sebuah pembuatan fungsi yang bernama “initUI” yang akan saya gunakan untuk menampung Komponen window kita nantinya.
        self.progressBar()  //code ini digunakan untuk memanggil metode yang bernama “progressBar”
        self.tombol() //code ini digunakan untuk memanggil metode yang bernama “tombol”

        self.penghitung = QtCore.QBasicTimer()  //code ini digunakan untuk memanggil timer dari library PySide. Kemudian saya tampung ke dalam variabel “penghitung”.
        self.posisi = 0  //ini digunakan untuk mendeklarasikan variabel “posisi” dengan nilai 0.

        self.setGeometry(300, 300, 280, 170)  //code ini digunakan untuk mengatur lebar window kita menjadi “280x170”. Tentu saja kalian bisa mengubahnya sesuka hati kalian.
        self.setWindowTitle('QtGui.QProgressBar')  //code ini digunakan untuk membua judul window kita menjadi teks yang ada di tanda petik (“). Tentu saja kalian bisa mengubahnya sesuka hati kalian.

    def progressBar(self):  //code ini merupakan sebuah fungsi yang akan saya gunakan untuk menampung pembuatan status bar.
        self.progressBar = QtGui.QProgressBar(self)  //code ini digunakan untukmemanggil “progres bar” dari library PySide yang kemudian saya tampung ke dalam variabel “progressBar”.
        self.progressBar.setGeometry(30, 40, 200, 20) //code ini digunakan untuk mengatur lebar kolom progress bar kita menjadi “200x20”. Tentu saja kalian bisa mengubahnya sesuka hati kalian.

    def tombol (self) :  //ini merupakan sebuah fungsi yang akan saya gunakan untuk menampung code program untuk membuat sebuah tombol.
        self.tombol = QtGui.QPushButton('Start', self)  //code ini digunakan untuk memanggil tombol di dalam library PySide. Lalu menampung atau menyimpannya di dalam variabel tombol.
        self.tombol.move(40, 80)  //ini digunakan untuk memindahkan tombol ke lokasi dengan geometry “40x80”.
        self.tombol.clicked.connect(self.perintah)  //code ini digunakan untuk memberikan aksi atau perintah ketika tombol ini di klik. Perintah nya adalah akan menjalankan fungsi “perintah”.

    def timerEvent(self, e):  //code ini merupakan sebuah fungsi yang merupakan sebuah penghitung atau timer.
        if self.posisi >= 100:  //code ini berfungsi sebagai pengecek apakah nilai yang ada di dalamvariabel “posisi” sama atau lebih besar dari 100.
            self.penghitung.stop()  //code ini berfungsi untuk menghentikan penambahan angka yang dilakukan.
            self.tombol.setText('Finished')  //code ini digunakan untuk mengganti teks tombol menjadi “finished”
            return  //ini merupakan fungsi return yang berfungsi untuk mengembalikan nilai.
        self.posisi = self.posisi + 2  //code ini digunakan untuk menambah nilai di dalam variabel “posisi” sebanyak 2.
        self.progressBar.setValue(self.posisi)  //code ini digunakan untuk mengupdate atau memperbarui nilai yang tampil di dalam statusBar.

    def perintah(self):  //code ini merupakan sebuah fungsi atau metode yang saya gunakan untuk menampung perintah – perintah yang bisa dilakukan oleh tombol.
        if self.penghitung.isActive():  //ini untuk mengecek apakah proses penghitungan sedang berlangsung atau tidak. Atau bisa kita katakana apakah ProgressBar sedang berjalan atau tidak.
            self.penghitung.stop()  //code ini digunakan untuk menghentikan penghitungan atau proses penambahan.
            self.tombol.setText('Start')  //code ini digunakan untuk mengubah teks tombola atau button menjadi “start”.
        else:  //code yang akan di eksekusi jika penyeleksian if diatas tidak memenuhi.
            self.penghitung.start(100, self)  //ini untuk medeklarasikan penghitungan dari 0 sampai 100.
            self.tombol.setText('Stop')    //code ini digunakan untuk mengubah teks tombola atau button menjadi “stop”.


if __name__ == '__main__':  //ini merupakan penyeleksian yang akan menanyakan apakah program ini dipanggil atau tidak.
    import sys  //code ini digunakann untuk mengimpor sys
    myApp = QApplication(sys.argv) //code ini merupakan code wajib yang harus ada.
    myWidget = MyWidget()  //code ini digunakan untuk memanggil class mywidget yang sudah kita buat tadi.
    myWidget.show() //code ini digunakan untuk menampilkan GUI Window yang sudah kita buat tadi.
    myApp.exec_() //code ini digunakan agar window kita tidak langsung close saat kita panggil


Nah itu dia penjelasan saya mengenai program untuk membuat progress bar ini... Semoga penjelasan di atas dapat membuat kalian lebih paham ya.. Seperti harapan saya yang sudah saya katakan tadi.. Namun, jika ada yang kurang jelas atau belum bisa di pahami, silahkan baca lagi ya.. Karena sya sudah berusaha untuk menjelaskannya se detail yang saya bisa.. Namun, jika memang ada kata - kata yang kurang jelas, atau ada kata - kata yang susah kalian pahami, kalian bisa menanyakannya di kolom komentar yang ada di bawah postingna ini ya...

Selain melalui kolom komentar, kalian juga bisa menghubungi saya melalui kolom atau laman kontak form yang link nya sudah saya sediakan di footer blog ini atau bagian halaman paling bawah blog ini.. Oya jika kalian menyukai isi, tampilan atau sisi lain dari blog ini, minta tolong untuk di share ya,, atau beri tau temen kalian tentang keberadaan postingan maupun blog ini.. Yang akan saya anggap sebagai support atau dukungan kalian untuk saya...

Oya.. Tak lupa saya ucap kan terimakasih bagi kalian yang sudah menyempatkan waktu untuk mengenjungi blog saya.. Lebih - lebih bagi yang membaca postingan saya.. Dan ucapan terimakasih yang sangat spesial bagi kalian yang membagikan postingan saya maupun blog saya.. Dan mohon maaf ya jika ada salah kata atau kekurangan dari postingan maupun blog saya.. Karena saya masih newbie... Hehe sekian dulu temen temen.. Sampai jumpa lagi di postingan saya yang lainny..
Terimakasih...

Wassalamualaikum wr. wb.
Previous
Next Post »
Thanks for your comment