프로그래밍/파이썬

파이썬 Python QT PyQt QPushButton

에이티에스 2023. 6. 21. 22:31
728x90

PyQt QPushButton 위젯 소개

PyQt 클래스를 사용하면 푸시 버튼 또는 토글 버튼이 될 수 있는 버튼 위젯을 만들 수 있습니다.

누름 단추를 만들려면 다음 단계를 수행합니다.

먼저 PyQt6.QtWidgets모듈에서 QPushButton를 가져옵니다.

from PyQt6.QtWidgets import QPushButtonCode language: Parser3 (parser3)

둘째, 버튼에 나타나는 텍스트로 QPushButton()를 호출합니다.

button = QPushButton('Click Me')Code language: Python (python)

셋째, clicked신호를 콜러블에 연결합니다.

button.clicked.connect(self.on_clicked)Code language: Python (python)

on_clicked는 버튼을 클릭할 때 실행되는 메서드입니다.

다음은 창에 단추를 표시하는 전체 프로그램을 보여 줍니다.

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QPushButton Widget')
        self.setGeometry(100, 100, 320, 210)

        button = QPushButton('Click Me')

        # place the widget on the window
        layout = QVBoxLayout()
        layout.addWidget(button)
        self.setLayout(layout)

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    # create the main window
    window = MainWindow()

    # start the event loop
    sys.exit(app.exec())Code language: Python (python)

출력:

 

아이콘이 있는 누름 단추 만들기

아이콘이 있는 단추를 만들려면 다음 단계를 사용합니다.

먼저 PyQt6.QtGui모듈에서 QIcon를 가져옵니다.

from PyQt6.QtGui import QIconCode language: Python (python)

둘째, QPushButton개체를 만듭니다.

button = QPushButton('Delete')Code language: Python (python)

셋째, QPushButtonQIcon객체와 함께 setIcon()메서드를 호출하여 버튼의 아이콘을 추가합니다.

button.setIcon(QIcon('trash.png'))Code language: Python (python)

개체는 아이콘 파일에 대한 경로를 허용합니다. 

버튼을 더 멋지게 만들려면 setFixedSize() method를 호출하여 크기를 설정할 수 있습니다.

크기는 너비와 높이라는 두 개의 인수가 있는 QSize개체에 의해 결정됩니다.

PyQt6.QtCore모듈에서QSize 클래스를 가져와야합니다. 

다음 프로그램에서는 아이콘이 있는 단추를 표시하는 방법을 보여 줍니다.

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt6.QtCore import QSize
from PyQt6.QtGui import QIcon


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QPushButton Widget')
        self.setGeometry(100, 100, 320, 210)

        button = QPushButton('Delete')
        button.setIcon(QIcon('trash.png'))

        button.setFixedSize(QSize(100, 30))

        # place the widget on the window
        layout = QVBoxLayout()
        layout.addWidget(button)
        self.setLayout(layout)

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    # create the main window
    window = MainWindow()

    # start the event loop
    sys.exit(app.exec())Code language: Python (python)

출력:

 

토글 단추 만들기

QPushButton클래스에는 버튼을 토글 버튼으로 사용할 수 있는 checkable속성이 있습니다.

토글 버튼은 켜짐/꺼짐 상태입니다. 버튼이 켜져 있으면 선택된 버튼이 true입니다. 그렇지 않으면 false입니다.

토글 버튼의 경우 clicked신호는 버튼의 상태를 켜짐 또는 꺼짐으로 보냅니다.

다음 프로그램은 토글 단추가 있는 창을 표시합니다.

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QPushButton Widget')
        self.setGeometry(100, 100, 320, 210)

        button = QPushButton('Toggle Me')
        button.setCheckable(True)
        button.clicked.connect(self.on_toggle)

        # place the button on the window
        layout = QVBoxLayout()
        layout.addWidget(button)
        self.setLayout(layout)

        # show the window
        self.show()

    def on_toggle(self, checked):
        print(checked)


if __name__ == '__main__':
    app = QApplication(sys.argv)

    # create the main window
    window = MainWindow()

    # start the event loop
    sys.exit(app.exec())Code language: Python (python)

 

728x90
반응형
그리드형