Aplikasi Screenshoot PySide Python (versi 1)

BelajarPython - Assalamualaikum wr. wb.

Jumpa lagi sahabat python.. Pada kesempatan kali ini saya akan mengajak kalian membuat aplikasi screenshoot nih.. Seperti apa? Langsung saja di simak ya...

Pengenalan aplikasi yang akan kita buat.

Aplikasi yang kita buat kali ini adalah aplikasi screenshoot yang sudah tidak asing lagi.. Dimana aplikasi ini berfungsi untuk memotret layar PC kalian untuk di jadikan sebagai file gambar...

Aplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat semua versi aplikasi ini, KLIK DISINI ya...

Kali ini, saya akan memberikan versi awal. Dimana pada versi terendah ini saya akan menghadirkan satu tombol saja.. Dengan fungsi memotret layar pc kalian..

Rincian Lengkap Screenshoot PySide Versi 1.0

Aplikasi ini menggunakan library PySide.. Jadi, untuk menjalankannya, harus install dulu (KLIK DISINI untuk install).... Dan berikut rincian lengkap versi ini..

Nama: mn-Screenshoot 1.0
Versi: 1.0 || selanjutnya.
Platform: Python 3.x  || Install.
Modul: PySide || Install.
Baris Code: +- 70 baris.
Penambahan: +-70 baris.
Terdiri dari: 1 class dan 7 metode.
Fitur: Memotret layar PC.
Kelemahan: Masih sangat sederhana (1 tombol saja).
syarat menjalankan: Python 3.x, PySIde, dan editor teks / IDE.
Cara menjalankan: install python 3 dan PySide, copy paste code program pada editor/IDE, simpan dalam file python(ekstensi ‘.py’), lalu jalankan.

Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...

Code program aplikasi Screenshoot versi 1.0

Nah lalu seperti apa code program versi ini ? Oke, Berikut saya berikan code program nya ya...


from PySide import QtCore, QtGui

class Screenshot(QtGui.QWidget):
    def __init__(self):
        super(Screenshot, self).__init__()

        self.buatTombol()
        self.tempatHasil = QtGui.QLabel()
        self.tempatHasil.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        self.tempatHasil.setAlignment(QtCore.Qt.AlignCenter)

        self.mainLayout = QtGui.QVBoxLayout()
        self.setScroll()
        self.mainLayout.addLayout(self.layoutTombol)
        self.setLayout(self.mainLayout)

        self.setWindowTitle("Screenshos -> mn-belajarpython.blogspot.co.id")
        self.resize(300, 30)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)

    def setScroll(self):
        # mengatur scroll
        self.scrollArea = QtGui.QScrollArea()
        self.scrollArea.setWidget(self.tempatHasil)
        self.scrollArea.setBackgroundRole(QtGui.QPalette.Mid)
        self.scrollArea.setAlignment(QtCore.Qt.AlignCenter)

        self.mainLayout.addWidget(self.scrollArea)
        self.scrollArea.setMinimumSize(700, 400)

        self.scrollArea.hide()

        screen = QtGui.QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)

    def screenshootBaru(self):
        self.tangkapLayar()

    def tangkapLayar(self):
        QtGui.qApp.beep()

        self.hasil = None
        self.hasil = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId())
        self.salinan = self.hasil
        self.updateGambar()

    def buatTombol(self):
        self.window = self.perintahTombol("Tangkap", self.screenshootBaru)
        self.layoutTombol = QtGui.QHBoxLayout()
        self.layoutTombol.addStretch()
        self.layoutTombol.addWidget(self.window)
        self.layoutTombol.setContentsMargins(4,0,4,4)

    def perintahTombol(self, text, perintah):
        button = QtGui.QPushButton(text)
        button.clicked.connect(perintah)
        button.setFixedSize(60, 20)
        return button

    def updateGambar(self):
        self.tempatHasil.setMinimumSize(self.hasil.size())
        self.tempatHasil.setPixmap(self.hasil)
        self.scrollArea.show()

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


Nah lalu, seperti apa tampilan yang di hasilkan dari code program di atas? Langsung saja yuk kita simak sama - sama tampilannya di bawah ini...


Penjelasan code program Aplikasi Screenshoot PySide versi 1.0

Sekarang saya akan mencoba untuk menjelaskan code program yang sudah saya bagikan di atas tadi.. Agar kalian lebih mudah untuk memahaminya.. Oke, Langsung saja..
[NOTE : Teks berwarna MERAH pada penjelasan adalah Code tambahan yang tidak ada di versi sebelumnyaDan yang Berwarna BIRU akan di hapus di versi berikutnya. Jika Code berwarna MERAH dan komentar berwarna BIRU maka merupakan code baru dan akan di hapus di versi berikutnya]

from PySide import QtCore, QtGui  //mengimport class ‘QtCore’ dan ‘QtGui’ dari  PySIde

class Screenshot(QtGui.QWidget):  //membuat class. Dengan mewarisi (inheritence) class ‘QWidget’
    def __init__(self):  //membuat construktor
        super(Screenshot, self).__init__()  //memanggil kelas parent

        self.buatTombol()  //menjalanka metode ‘buatTombol’
        self.tempatHasil = QtGui.QLabel()  //membuat label (tempatHasil) sebagai tempat gambar hasil screenshoot
        self.tempatHasil.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)  //membuat ukuran (tempatHasil) mengikuti besar foto
        self.tempatHasil.setAlignment(QtCore.Qt.AlignCenter)  //membuat tempat foto agar berada di tengah window

        self.mainLayout = QtGui.QVBoxLayout()  //membuat layout utama
        self.setScroll()  //menjalankanmetode ‘setScroll’
        self.mainLayout.addLayout(self.layoutTombol)  //digunaakan untuk memasukkan ‘layoutTombol’ ke layout utama (mainLayout)
        self.setLayout(self.mainLayout)  //memasukkan layout utama (mainLayout) ke dalam window

        self.setWindowTitle("Screenshos -> mn-belajarpython.blogspot.co.id")  //mengubah judul window
        self.resize(300, 30)  //mengubah ukuran window
        self.mainLayout.setContentsMargins(0, 0, 0, 0)  //menghilangkan margin window

    def setScroll(self):  //metode ‘setScroll’
        # mengatur scroll  //hanya komentar
        self.scrollArea = QtGui.QScrollArea()  //mendefinisikan area scroll
        self.scrollArea.setWidget(self.tempatHasil)  //memasukkan ‘tempatHasil’ sebagai tempat yang akan di scroll
        self.scrollArea.setBackgroundRole(QtGui.QPalette.Mid)  //menggubah warna background scroll
        self.scrollArea.setAlignment(QtCore.Qt.AlignCenter)  //agar ‘tempatHasil’ berada di tengah

        self.mainLayout.addWidget(self.scrollArea)  //memasukkan tempat scroll (scrollArea) ke dalam layout utama
        self.scrollArea.setMinimumSize(700, 400)  //minimal ukuran area scroll

        self.scrollArea.hide()  //menyembunyikan tempat scroll (scrollArea) karena belum di screenshoot

        screen = QtGui.QDesktopWidget().screenGeometry()  //mendapatkan ukuran layar PC
        size = self.geometry()  //mendpatkan ukuran window
        self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)  //membuat window tampil ditengah layar PC saat pertama di jalankan

    def screenshootBaru(self):  //metode ‘screenshootBaru’
        self.tangkapLayar()  //menjalankan metode ‘tangkapLayar’

    def tangkapLayar(self):  //metode tangkap layar
        QtGui.qApp.beep()  //membunyikan bunyi (bell) default sistem operasi

        self.hasil = None  //mendefinisikan variabel ‘hasil’ sebagai penyimpan hasil tangkapan layar
        self.hasil = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId())  //mengambil gambar dari layar window PC
        self.salinan = self.hasil  //menyalin/menyimpan foto hasil screenshoot
        self.updateGambar()  //menjalankan metode ‘updateGambar’

    def buatTombol(self):  //metode ‘buatTombol’
        self.window = self.perintahTombol("Tangkap", self.screenshootBaru)  //digunakan untuk menjalankan metode ‘perintahTombol’ untuk membuat tombol parameter 1 sebagai nama dan parameter 2 sebagai perintah
        self.layoutTombol = QtGui.QHBoxLayout()  //membuat layout tombol
        self.layoutTombol.addStretch()  //menambahkan stretch yang akan membesar/mengecil jika window di perbesar atau di perkecil
        self.layoutTombol.addWidget(self.window)  //memasukkan tombol di dalam variabel ‘window’
        self.layoutTombol.setContentsMargins(4,0,4,4)  //mengatur margin layout tombol

    def perintahTombol(self, text, perintah):  //metode ‘perintahTombol’ (pembuat tombol)
        button = QtGui.QPushButton(text)  //membuat tombol dengan teks yang ada di variabel parameter (text)
        button.clicked.connect(perintah)  //menghubungkan tombol dengan perintah yang di masukkan di variabel parameter (perintah)
        button.setFixedSize(60, 20)  //mengubah ukuran tombol
        return button //mengembalikan tombol yang telah di buat

    def updateGambar(self):  //metode ‘updateGamber’
        self.tempatHasil.setMinimumSize(self.hasil.size())  //mengubah ukuran minimum ‘tempatHasil’ sesuai ukuran gambar
        self.tempatHasil.setPixmap(self.hasil)  //memasukkan gambar ke dalam ‘tempatHasil’
        self.scrollArea.show()  //menampilkan ‘scrollArea’ karena sudah melakukan screenshoot. Dimana sebelumnya telah di sembunyikan di awal

if __name__ == '__main__':  //code yang akan dijalankan pertama
    import sys  //mengimport class sys dari python
    app = QtGui.QApplication(sys.argv)  //mendefinisikan class ‘Qapplication’ dari PySide
    screenshot = Screenshot()  //menjalankan class ‘Screenshoot’
    screenshot.show()  //menampilkan window ‘Screenshoot’

    sys.exit(app.exec_())  //agar window tidak langsung close saat di jalankan



Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya... Biar kita bisa belajar bersama..

Oke terimakasih dan sampai di sini dulu ya... Jangan lupa untuk membaca versi yang lain... Biar ilmunya nambah.. Hehe.. Temikasih sekali lagi dan sekian...

Wassalamualaikum wr. wb.

Previous
Next Post »
Thanks for your comment