Cara Menggunakan PyQt QPushButton

Tombol digunakan dalam aplikasi GUI untuk melakukan berbagai operasi berdasarkan peristiwa yang dihasilkan oleh user. ItuQPushButtonclass of PyQt digunakan dalam Python untuk membuat tombol yang diperlukan oleh aplikasi. Kelas ini mewarisi fungsi inti dariQAbstractButtonkelas. Teks atau ikon dapat digunakan untuk memberi keterangan pada tombol. Tombol dapat diaktifkan menggunakan mouse dan keyboard. Setiap peristiwa tombol, termasuk tombol yang diklik atau diklik dua kali, dapat dikaitkan dengan fungsi atau metode untuk menangani peristiwa tersebut. Tutorial ini menunjukkan cara membuat berbagai jenis tombol menggunakanQPushButton kelas PyQt dengan Python.

 

QPushButton Methods

QPushButton class has many methods to perform various button-related tasks. Some of the more commonly used methods of this class are mentioned below:

Method Name Purpose
text() Used to read the caption of the button.
setText() Used to set text in the caption of the button.
setIcon() Used to set an icon in the caption of the button.
setDefault() Used to set the default button.
setEnabled() Used to enable or disable buttons. A value of True is used to enable the button, and a value of False is used to disable the button.
setCheckable() Used to identify whether the button is pressed or released.
isChecked() Used to read the state of the button that is a boolean value.
toggle() Used to toggle between states. If the current value of the button state is True, then the value will change to False, and vice versa.

Penggunaan QPushButton

Bagian berikut memberikan beberapa contoh sederhana untuk menjelaskan useran QPushButton.

Contoh 1: Buat Tombol Tekan Sederhana

Skrip berikut digunakan untuk membuat satu tombol di jendela. Script akan melampirkan fungsi khusus dengan acara tombol yang diklik untuk memeriksa apakah tombol telah diklik. Jendela akan menampilkan tombol mengikuti eksekusi kode. Jika user mengklik tombol, teks‘Button is pressed’ akan ditampilkan di label.

# Import necessary modules
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel

# Define class to create a single push button
class ButtonExample(QWidget):

    def __init__(self):
        # Call parent constructor
        super().__init__()

        # Create a button
        self.btn = QPushButton('Click Me', self)
        # Set tooltip text for the button
        self.btn.setToolTip('This is a simple button')
        # Set the geometry of the button
        self.btn.setGeometry(100, 20, 100, 30)

        # Call function when the button is clicked
        self.btn.clicked.connect(self.onClicked)

        # Define label at the bottom of the button
        self.msgLabel = QLabel('', self)
        # Set the geometry of the label
        self.msgLabel.setGeometry(90, 60, 290, 60)

        # Set the title of the window
        self.setWindowTitle('Use of PushButton')
        # Set the geometry of the main window
        self.setGeometry(10, 10, 300, 150)

        # Set the position of the main window in the screen
        self.move(850, 300)
        # Display the window
        self.show()

    # Define function to handle the click event of the button
    def onClicked(self):
        # Set text for the label
        self.msgLabel.setText('Button is pressed.')

# Create app object and execute the app
app = QApplication(sys.argv)
button = ButtonExample()
app.exec()

Jendela berikut akan muncul setelah menjalankan skrip.

Jika user mengklik Çlick Me tombol, maka teks berikut akan muncul di keterangan di bawah tombol.

Contoh 2: Buat Beberapa Tombol Tekan

Skrip berikut akan membuat beberapa tombol menggunakan QPushButtonkelas. Dua tombol dibuat dalam skrip. Acara yang diklik dari ‘Yes‘ dilampirkan ke metode bernama btn1_onClicked(), dan acara yang diklik dari ‘No‘ dilampirkan ke metode bernama btn2_onClicked(). Judul yang dibuat di bawah tombol akan menampilkan pesan yang ditentukan berdasarkan tombol yang diklik oleh user. ItusetGeometry() fungsi yang digunakan untuk setiap label dan tombol untuk mengatur posisi objek di jendela.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel


class MultiButtons(QWidget):

    def __init__(self):
        # Call parent constructor
        super().__init__()

        # Define label at the top of the button
        self.topLabel = QLabel('<h2>Do you like python?</h2>', self)
        # Set the geometry of the label
        self.topLabel.setGeometry(100, 20, 290, 50)

        # Create the first button
        self.btn1 = QPushButton('Yes', self)
        # Set the geometry of the button
        self.btn1.setGeometry(130, 70, 60, 40)
        # Call function when the button is clicked
        self.btn1.clicked.connect(self.btn1_onClicked)

        # Create the second button
        self.btn2 = QPushButton('No', self)
        # Set the geometry of the button
        self.btn2.setGeometry(200, 70, 60, 40)
        # Call function when the button is clicked
        self.btn2.clicked.connect(self.btn2_onClicked)

        # Define label at the bottom of the button
        self.msgLabel = QLabel('', self)
        # Set the geometry of the label
        self.msgLabel.setGeometry(130, 120, 300, 80)

        # Set the title of the window
        self.setWindowTitle('Use of multiple PushButtons')
        # Set the geometry of the main window
        self.setGeometry(10, 10, 400, 200)

        # Set the position of the main window in the screen
        self.move(850, 300)
        # Display the window
        self.show()


    def btn1_onClicked(self):
        # Set text for the bottom label
        self.msgLabel.setText('<h3>You clicked Yes.</h3>')


    def btn2_onClicked(self):
        # Set text for the bottom label
        self.msgLabel.setText('<h3>You clicked No.</h3>')


# Create app object and execute the app
app = QApplication(sys.argv)
button = MultiButtons()
app.exec()

Jendela berikut akan muncul setelah menjalankan skrip.

Jika user mengklik Yes tombol, pesan, ‘You clicked Yes‘ akan ditampilkan sebagai teks label.

Jika user mengklik No tombol, pesan, ‘You clicked No’ akan ditampilkan sebagai teks label.

Kesimpulan

Kelas QPushButton memungkinkan user untuk membuat satu atau lebih tombol berdasarkan persyaratan aplikasi. Tutorial ini menunjukkan useran kelas ini untuk membuat satu atau beberapa tombol, serta cara menangani peristiwa klik tombol menggunakan fungsi pengendali peristiwa khusus.

Related Posts