cara menambahkan konfirmasi keluar pada Window GUI python menggunakan PySide.

Belajarpython – assalamualaikum wr. wb
.
Jumpa lagi nih temen – temen… pada kesempatan kali ini, saya akan mencoba untuk membuat melanjutkan sebuah program pada postingan saya sebelumnya.. jadi pada postingan saya sebelumnya, saya telah membagikan code program untuk menampilkan sebuah window dari GUI python menggunakan library PiSide.. nah pada code program tersebut sudah saya buat dengan cukup lengkap… nah lengkap bagaimana sih program yang sudah saya buat ini ? untuk menjawab pertanyaan tersebut, kalian bisa langsung melihatnya di pada postingan saya sebelumnya. Atau lebih mudahnya kalian bisa langsung KLIK DISINI.

Pada postingan lanjutan kali ini saya akan mencoba menambahkan sebuah fitur yang bisa saya sebut sebagai kotak dialog yang berfungsi untuk sebuah konfirmasi yang akan saya tampilkan saat kalian meng klik tombol “x” atau menutup window GUi yang sudah saya buat sebelumnya. Jadi cara kerja dari fitur yang akan saya buat ini adalah, saat kita menutup GUI window dari program yang saya jalankan, maka window tersebut tidak aka langsung menutup.. karena terlebih dahulu akan di tampilkan sebuah window yang berisi sebuah konfirmasi antara lanjut atau batal.

Apa yang di maksud dengan kotak dialog konfirmasi ?

Nah sebelum saya melanjutkan postingan saya ini, terlebih dahulu saya akan mencoba untuk menjelaskan mengenai fitur yang akan saya tambahkan kali ini.. karena saya tidak mau jika kalian membaca postingan saya, namun kalian tidak mengerti apa yang saya bahas.. dan apa yang akan saya tambahkan pada program sebelumnya.. jadi saya akan mencoba untuk menjelaskan secara singkat mengenai apa yang akan saya bahas kali ini.. yaitu tentang sebuah window konfirmasi.

Seperti yang sudah saya katakana sebelum – sebelumnya, fitur yang akan saya tambahkan kali ini adalah sebuah window yang akan berisi sebuah kofirmasi untuk keluar atau dari window yang akan kita tampilkan nantinya. Jadi window konfirmasi yang saya maksud ini adalah sebuah kotak window yang umumnya lebih kecil dari window utama.. dan berisi dua buah tombol.. yaitu “ok” dan “cancel”. Tombol oke jika kalian ingin melanjutkan perintah kalian untuk menutup windownya. Sedangkan “cancel” untuk membatalkan perintah kalian.

Nah untuk lebih menjelaskan tentang apa yang sudah saya jelaskan tadi, saya akan mencoba memberikan sebuah screenshoot window konfirmasi ini yang saya ambil dari IDLE python.. yuk langsung saja kita simak screenshootnya di bawah ini…

Nah itu dia contoh screenshoot dari window konfirmasi yang saya maksud tadi… dan yang akan menjadi pokok bahasan kita pada postingan kita kali ini… gimana ? sudah jelaskan penjelasan saya diatas ? apalagi setelah saya tampilkan contoh nya langsung.. tentu akan lebih memperjelas penjelasan saya ini..

Cara menambahkan sebuah window konfirmasi pada window GUI python.

Nah setelah saya membahas mengenai pengertian dari window konfirmasi ini, dan bahkan saya telah memberikan contoh screenshootnya, saya akan mencoba untuk memberikan code program untuk membuat window konfirmasinya.. yuk langsung saja kita simak ya source code atau code programnya di bawah ini ya temen – temen…

import sys
from PySide import QtGui

class konfirmasiKeluar(QtGui.QWidget):
    
    def __init__(self):
        super(konfirmasiKeluar, self).__init__()
        
        self.initUI()
        
    def initUI(self):
        self.teks = QtGui.QLabel("silahkan tutup window ini"
                                 " untuk melihat konfirmasi"
                                 " saat anda ingin keluar", self)
        self.teks.move(30, 125)
        
        self.setGeometry(300, 300, 400, 300)        
        self.setWindowTitle('konfirmasi u/ keluar')
        self.show()
        
    def closeEvent(self, event):
        pilihan = QtGui.QMessageBox.question(self, 'Konfirmasi',
            "Apakah anda yakin ingin keluar ?", QtGui.QMessageBox.Yes | 
            QtGui.QMessageBox.No, QtGui.QMessageBox.No)

        if pilihan == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()        
        
        
def main():
    
    app = QtGui.QApplication(sys.argv)
    ex = konfirmasiKeluar()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()


nah itu dia temen – temen programnya.. cukup pendek atau lumayan panjang bagi kalian ? atau mudah di pahami apa tidak ? hanya kalian lah yang bisa menjawab dua pertanyaan tersebut.. karena kita akan memiliki pemikiran sendiri – sendiri.. karena hal tersebut lebih mengenai terhadap pendapat setiap orang… lalu seperti apakah tampilan GUI window dari program di atas ? saya tidak akan menjawab pertanyaan tersebut dengan kata – kata saja.. karena saya akan mencoba untuk menampilkan screenshoot dari program diatas.. yuk langsung saja kita lihat screenshoot nya di bawah ini..



Nah itu dia temen – temen hasil screenshoot saat program diatas saya jalankan..
Dan selanjutnya saya akan mencoba untuk menjelaskan program yang telah saya bagikan diatas tersebut.. dengan harapan dapat membuat kalian bisa lebih paham secara lebih mendalam serta dapat memahami program saya dengan mudah… yuk langsung saja kita simak penjelasan saya mengenai code diatas..

import sys  //code ini digunakann untuk mengimpor sys
from PySide import QtGui  //code ini digunakan untuk mengimpor “QtGui”

class konfirmasiKeluar(QtGui.QWidget): //nah code ini merupakan pembuatan class yang akan menampung pembuatan sebuah GUI window yang akan kita tampilkan nantinya..
   
    def __init__(self):  //ini merupakan sebuah metode yang secara otomatis akan di jalankan ketika class “konfirmasiKeluar” ini kita panggil nantinya.
        super(konfirmasiKeluar, self).__init__()  //code ini merupaka sebuah constructor yang akan menjadikan class ini menjadi sebuah class GUI.
        self.initUI()  //code ini digunakan untuk memanggil fungsi atau metode dengan nama “initUI”.
       
    def initUI(self):  //ini merupakan sebuah metode yang akan saya isi program – program yang akan membangun sebuah GUI window nantinya.
        self.teks = QtGui.QLabel("silahkan tutup window ini" 
                                 " untuk melihat konfirmasi"
                                 " saat anda ingin keluar", self)   //code ini digunakan untuk menambahkan sebuah tulisan pada window kita nantinya…
        self.teks.move(30, 125) //code ini digunakan untuk memindah tulisan yang sudah saya tambahkan di atas. Dengan posisi “30, 125”.
       
        self.setGeometry(300, 300, 400, 300)  //code ini digunakan untuk mengatur atau membuat window yang akan kita tampilkan menjadi 400 x 300 pixel
        self.setWindowTitle('konfirmasi u/ keluar')  //code ini digunakan untuk membuat judul window kita menjadi “konfirmasi u/ keluar”.
        self.show()  //code ini digunakan untuk menampilkan window kita setelah kita membuatnya tadi.
       
    def closeEvent(self, event):  //ini merupakan sebuah metode atau fungsi yang akan menampung code program ketika akan menutup window yang akan kita tampilkan nantinya.
        pilihan = QtGui.QMessageBox.question(self, 'Konfirmasi',
            "Apakah anda yakin ingin keluar ?", QtGui.QMessageBox.Yes |
            QtGui.QMessageBox.No, QtGui.QMessageBox.No)  //code ini digunakan untuk membuat sebuah window konfirmasi nya.. dengan pesan “apakah anda yakin ingin keluar ?” dan dengan 2 tombol yaitu “yes” dan “no”.

        if pilihan == QtGui.QMessageBox.Yes:  //ini merupakan sebuah penyeleksian apakah kita atau user mengklik tombol yes atau tidak.
            event.accept()  //code ini akan di eksekusi jika user meng klik tombol yes. Yang merupakan perintah untuk melanjutkan proses untuk keluar dari window.
        else:  //code ini akan aktif jika user mengklik tombol no.
            event.ignore()  //code ini digunakan untuk mengabaikan atau menggagalkan perintah untuk keluar dari window GUI kita nantinya. Dan akan aktif ketika kita atau user meng klik tombol no.
       
       
def main() :  //ini merupakan metode yang menampung code – code program yang harus ada dalam pembuatan GUI python terutama saat menggunakan library PySide.
                app = QtGui.QApplication(sys.argv) //code ini merupakan code wajib yang harus ada dalam pembuatan Window GUI python menggunakan library PySide.
                cth = konfirmasiKeluar()  //code ini digunakan untuk memanggil class “konfirmasiKeluar” yang sudah kita buat tadi.
                sys.exit(app.exec_())  //code ini merupakan code wajib yang harus ada dalam pembuatan Window GUI python menggunakan library PySide.

if __name__ == '__main__' :  code ini merupakan sebuah kondisi yang akan mengecek apakah program ini di jalankan atau tidak.

                main() //code ini merupakan pemanggilan metode “main” yang sudah kita buat tadi.
Nah itu dia temen – temen penjelasan saya mengenai program atau code program yang sudah saya bagikan sebelumnya…  semoga kalian bisa memahami dan memperaktekkan apa yang saya bahas pada postingan saya yang kali ini…

Penambahan fungsi window konfirmasi saat kita menutup window pada program postingan sebelumnya.

Nah itu dia temen – temen penambahan fitur window konfirmasinya temen – temen…  sekali lagi, saya katakan jika kalian ingin melihat postingan saya sebelumnya atau program sebelum saya tambahkan fitur window konfirmasi ini, kalian bisa KLIK DISINI. Nah terus, gimana ya program setelah saya tambahkan fitur window konfirmasi ini ? untuk menjawabnya, yuk langsung saja kita simak program atau source code yang akan saya berikan di bawah ini…

import sys
from PySide import QtGui, QtCore

class penampilMenubar(QtGui.QMainWindow):
   
    def __init__(self):
        super(penampilMenubar, self).__init__()
        self.jendela()
       
    def jendela(self):
        self.resize(250, 150)
        self.button()
        self.ditengahkan()
        self.toolbar()
        self.menubar()
        self.statusBar().showMessage('ini yang namanya status bar..')
        self.setWindowTitle('menampilkan menubar')
        self.setWindowIcon(QtGui.QIcon('D:\moham.jpg'))
        self.setGeometry(300, 300, 350, 250)
        self.show()

    def button(self) :
        tombol = QtGui.QPushButton('exit', self)
        tombol.setToolTip('inilah tombolnya')
        tombol.move(80, 60)
        tombol.clicked.connect(self.close)

    def ditengahkan(self):  
        posisi = self.frameGeometry()
        tengah = QtGui.QDesktopWidget().availableGeometry().center()
        posisi.moveCenter(tengah)

    def toolbar(self) :
        tombol = QtGui.QAction(QtGui.QIcon('D:\exit.jpg'), 'ingin keluar ?', self)
        tombol.triggered.connect(self.close)
       
        self.tombolKeluar = self.addToolBar('exit')
        self.tombolKeluar.addAction(tombol)

    def menubar(self) :
        exitAction = QtGui.QAction(QtGui.QIcon('D:/exit.jpg'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

    def closeEvent (self, event) :
        pilihan = QtGui.QMessageBox.question(self, 'Konfirmasi',
            "Apakah anda yakin ingin keluar ?", QtGui.QMessageBox.Yes |
            QtGui.QMessageBox.No, QtGui.QMessageBox.No)

        if pilihan == QtGui.QMessageBox.Yes :
            event.accept()
        else :
            event.ignore()



app = QtGui.QApplication(sys.argv)
ex = penampilMenubar()
sys.exit(app.exec_())



nah itu dia program nya temen – temen… cukup panjang ya… ya maklum saja.. kan sudah banyak penambahan fitur – fitur yang lain nya… seperti tombol, menubar, toolbar, status bar dan yang lainnya. Lalu seperti apakah penampakan code program diatas ketika saya jalankan ? yuk langsung saja kita simak sama – sama  screenshoot ketika code program diatas kita jalankan… yuk ini dia…



Nah itu dia temen – temen contoh screenshoot ketika code program diatas saya jalankan.. disana sudah bisa kita lihat sudah ada window konfirmasi ketika saya tekan tombol “exit” atau toolbar ber ikon tanda x di atas… nah setelah kita mengetahui code program beserta contoh screenshooot ketika prognya di jalankan, maka selanjutnya saya akan memberikan penjelasan mengenai program diatas… yuk langsung saja kita simak penjelasan saya mengenai program tersebut di bawah ini…

import sys  //ini digunakan untuk mengimpor sys
from PySide import QtGui, QtCore //ini saya gunakan untuk mengimpor QtGui dan QtCore dari library PySide.

class penampilMenubar(QtGui.QMainWindow): //ini merupakan sebuah class untuk membuat sebuah GUI nantinya.. dan saya memberi nama class nya dengan nama “penampilMenubar”.

    def __init__(self): //ini merupakan metode yang akan secara otomatis di jalankan ketika kalian memanggil class “menampilkan _tombol”.
        super(penampilMenubar, self).__init__() // ini untuk membuat class ini menjadi sebuah GUI.
        self.jendela() //ini digunakan untuk memanggil metode yang bernama jendela. Yang berada di bawah ini.

    def jendela(self): //ini merupakan metode yang saya gunakan untuk membuat sebuah window.
        self.resize(250, 150) //ini digunakan untuk mengatur ukuran dari window yang akan saya buat.
        self.button() //ini merupakan pemanggilan metode “button”.
        self.ditengahkan() //nah ini digunakan untuk memanggil metode “ditengahkan” yang berisi perintah untuk membuat windownya berada di tengah.
        self.toolbar() //code ini digunakan untuk memanggil metode “toolbar”.
        self.menubar() //code ini digunakan untuk memanggil metode “menubar”
self.statusBar().showMessage('ini yang namanya status bar..')  //ini lah yang digunakan untuk menambahkan statusbar dibawah window kita. Saya menambahkan status bar dengan pesan “ini yang namanya status bar..”. tentu kalian bisa mengubanya sesuka hati kalian...
        self.setWindowTitle('menampilkan Menubar')  //untuk mengubah judul dari window yang akan kita tampilkan dengan judul “menampilkan menubar”. Kalian juga bisa mengubah judulnya dengan judul sesuka kalian.
        self.setWindowIcon(QtGui.QIcon('D:\moham.jpg')) ini saya gunakan untuk memasang icon dari window nya. Kalian bisa merubahnya sesuai kemauan kalian dengan cara mengganti teks warna merah tersebut dengan lokasi foto yang akan kalian jadikan sebagai icon. Dan harus berformat jpg ya...
        self.setGeometry(300, 300, 350, 250) //ini digunakan untuk mengubah ukuran window yang akan kita tampilkan nantinya....
        self.show() //ini digunakan untuk menampilkan window yang sudah kita buat tadi. Maksudnya akan ditampilkan ketika program ini di jalankan.

    def button(self) : //ini merupakan sebuah metode yang saya isi dengan program untuk membuat button.
        tombol = QtGui.QPushButton('exit', self) //ini merupakan code program dengan perintah untuk membuat sebuah tombol dengan nama exit.
        tombol.setToolTip('inilah tombolnya') //code ini saya gunakan agar saat pointer menyentuh tombol yang kita buat, maka akan menampilkan sebuah tulisan “ini tombolnya”
        tombol.move(80, 60) //ini saya gunakan untuk memindah tombol yang sudah saya buat tadi.
        tombol.clicked.connect(self.close) //ini saya gunakan untuk membuat tombol nya memiliki perintah. Yaitu untuk keluar dari window atau mengakhiri run programnya.
        self.toolbar() //code in digunakan untuk memanggil class “toolbar”.
    def ditengahkan(self): //ini merupakan fungsi atau metode yang menjadi inti dari postingan ini. didalam metode ini memiliki program yang berfungsi untuk membuat windownya berada di tengah layar kita.
        posisi = self.frameGeometry() //ini digunakan untuk mendapatkan ukuran frame dari window atau jendela kita. Yang sudah saya tampung dalam variabel “posisi”.
        tengah = QtGui.QDesktopWidget().availableGeometry().center() //ini saya gunakan untuk mendapatkan nilai atau titik tengah dari layar kita. Dan sudah saya tampung nilainya di dalam variabel “tengah”.
        posisi.moveCenter(tengah)  //code ini merupakan perintah untuk memindahkan window kita ke titik tengah layar kita.
    def toolbar(self) : //metode ini digunakan untuk menampung code – code yang akan membuat sebuah toolbar.
        tombol = QtGui.QAction(QtGui.QIcon('D:\exit.jpg'), 'ingin keluar ?', self)  //code ini digunakan untuk membuat sebuah “toolbar” dengan nama “ingin keluar”. Dan saya memberi icon dengan file yang ada di drive D saya.. naman file nya adalah “exit.jpg”. tentu kalian harus mengubah tulisan berwarna merah diatas menjadi lokasi gambar yang telah Anda persiapkan sebelumnya.
        tombol.triggered.connect(self.close) //code ini berfungsi untuk menambahkan aksi atau perintah saat kita klik tombol toolbarnya. Dan karena tool bar yang saya buat merupakan toolbar exit, maka saya memberi perintah tombol ini untuk menutup window nya.

        self.tombolKeluar = self.addToolBar('exit') //code ini digunakan untuk memasang toolbarnya.
        self.tombolKeluar.addAction(tombol) //dan ini untuk menerapkan perintah yang sudah kita buat tadi.

    def menubar(self) : //ini merupakan metode yang saya buat untuk menampung elemen – elemen atau code program untuk membuat menubar. Nama metodenya adalah “menubar”.
        exitAction = QtGui.QAction(QtGui.QIcon('D:/exit.jpg'), '&Exit', self)  //digunakan untuk membuat menu pilihan setelah kita klik menu bar nya. Pilihan tersebut saya kasi nama “exit” dengan icon “D:/exit.jpg”. kalian bisa mengubah nama pilihannya sesuai kalian. Lalu iconnya juga wajib Anda ganti dengan lokasi file JPG kalian. Dan harus JPG ya..
        exitAction.setShortcut('Ctrl+Q') // ini digunakan untuk menambahkan shortcut.
        exitAction.setStatusTip('Exit application') //ini digunakan untuk menentukan teks yang akan di tampilkan pada status bar. Ketika kursor menyentuh pilihan ini nantinya
        exitAction.triggered.connect(self.close) //ini digunakan untuk menambahkan aksi atau perintah ketika pilihannya di klik. Karena saya membuat pilihan “exit” maka perintah yang saya buat adalah perintah keluar dari window. Atau mengakhiri running program tersebut

        self.statusBar() //ini digunakan untuk menampikan semua kegiatan aplikasi pada status bar.

        menubar = self.menuBar() //ini merupakan proses pembuatan variabel “menubar” untuk menampung “self.menubar()”
        fileMenu = menubar.addMenu('&File') //ini digunakan untuk memasukkan menu “file” ke dalam GUI windownya.
        fileMenu.addAction(exitAction) //ini digununakan untuk menambah sebuah perintah.
    def closeEvent(self, event):  //ini merupakan sebuah metode atau fungsi yang akan menampung code program ketika akan menutup window yang akan kita tampilkan nantinya.
        pilihan = QtGui.QMessageBox.question(self, 'Konfirmasi',
            "Apakah anda yakin ingin keluar ?", QtGui.QMessageBox.Yes |
            QtGui.QMessageBox.No, QtGui.QMessageBox.No)  //code ini digunakan untuk membuat sebuah window konfirmasi nya.. dengan pesan “apakah anda yakin ingin keluar ?” dan dengan 2 tombol yaitu “yes” dan “no”.

        if pilihan == QtGui.QMessageBox.Yes:  //ini merupakan sebuah penyeleksian apakah kita atau user mengklik tombol yes atau tidak.
            event.accept()  //code ini akan di eksekusi jika user meng klik tombol yes. Yang merupakan perintah untuk melanjutkan proses untuk keluar dari window.
        else:  //code ini akan aktif jika user mengklik tombol no.
            event.ignore()  //code ini digunakan untuk mengabaikan atau menggagalkan perintah untuk keluar dari window GUI kita nantinya. Dan akan aktif ketika kita atau user meng klik tombol no.

app = QtGui.QApplication(sys.argv)  // ini merupakan code wajib yang harus ada.
ex = penampilMenubar() //ini digunakan untuk memanggil class “penampilMenubar”.

sys.exit(app.exec_()) //ini merupakan bagian dari code yang harus ada.

Nah itu dia penjelasannya temen – temen penjelasan saya .. semoga penjelasan saya tidak membuat kalian tambah bingung ya.. dan harapan saya tentunya kalian dapat mengerti penjelasan saya tersebut… jika ada yang kurang di pahami, kalian bisa membacanya berulang – ulang serta secara perlahan – lahan… namun, jika kalian tetap tidak bisa memahami penjelasan saya tersebut, kalian bisa menanyakan hal tersebut pada kolom komentar yang ada di bawah postingan saya ini.. atau kalian juga bisa menghubungi saya langsung melalui laman kontak kami atau contact us yang ada di paling bawah halaman ini atau biasa disebut footer.

Sekian dulu ya temen – temen postingan saya kali ini.. semoga apa yang say sajikan kali ini dapat memberikan ilmu baru bagi kalian.. dan tentu saja dapat membuat kalian bisa memanfaatkan ilmu yang kalian dapatkan tersebut... oya.. jika kalian menyukai postingan saya yang satu ini, minta tolong di share ke social media ya.. atau share ke temen – temen kalian.. blog ini tetap hidup.. dan menambah postingan – postingan baru.. hehe terimakasih ya sudah berkunjung dan membaca postingan saya… dan saya ucapkan terimakasi yang sebesar – besarnya bagi kalian yang sudah share.. sekian..

Wassalamualaikum wr. wb.

Previous
Next Post »
Thanks for your comment