파이썬 (pythoon)

PyQt6을 사용하여 간단한 계산기를 만드는 방법

working for you 2023. 6. 26. 09:11
반응형

Python 라이브러리인 PyQt6을 사용하여 간단한 계산기를 만드는 방법을 살펴봅니다. PyQt6는 Python의 단순성과 Qt 프레임워크의 광범위한 기능을 결합하여 대화형 애플리케이션을 구축하는 데 탁월한 선택입니다. 차근차근 우리만의 계산기를 만들어 봅시다.

 

[목차]
1. PyQt6 계산기 인터페이스 만들기
2. Pyqt6 계산기 실행
3. 결론 및 의견

 

파이썬 간단 계산기

 

 

1. PyQt6 계산기 인터페이스 만들기

계산기 사용자 인터페이스의 기본 구조를 만드는 것으로 시작하겠습니다. 즐겨 사용하는 Python IDE 또는 텍스트 편집기를 열고 calculator.py와 같은 새 Python 스크립트 파일을 만듭니다. 그런 다음 다음 코드를 추가합니다.

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

class Calculator(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Simple Calculator")
        self.layout = QVBoxLayout()
        self.display = QLineEdit()
        self.layout.addWidget(self.display)

        buttons = [
            ['7', '8', '9', '/'],
            ['4', '5', '6', '*'],
            ['1', '2', '3', '-'],
            ['0', '.', '=', '+']
        ]

        grid_layout = QGridLayout()
        self.layout.addLayout(grid_layout)

        for row, button_row in enumerate(buttons):
            for col, label in enumerate(button_row):
                button = QPushButton(label)
                button.clicked.connect(lambda checked, label=label: self.handle_button(label))
                grid_layout.addWidget(button, row, col)

        self.setLayout(self.layout)

    def handle_button(self, label):
        if label == '=':
            try:
                result = eval(self.display.text())
                self.display.setText(str(result))
            except Exception as e:
                self.display.setText('Error')
        else:
            self.display.setText(self.display.text() + label)

def main():
    app = QApplication(sys.argv)
    calculator = Calculator()
    calculator.show()
    sys.exit(app.exec())

if __name__ == '__main__':
    main()

이 코드 스니펫에서는 PyQt6에서 필요한 모듈을 가져오는 것으로 시작합니다. 애플리케이션의 기본 창을 나타내는 QWidget에서 상속되는 Calculator 클래스를 만듭니다.

 

Calculator 클래스의 생성자(__init__)에서 self.setWindowTitle을 사용하여 창 제목을 설정합니다. 계산기의 요소를 정렬하기 위해 세로 레이아웃(self.layout)을 만듭니다.

 

 

다음으로 계산기의 입력과 출력을 표시하기 위해 QLineEdit 위젯(self.display)을 만듭니다.

 

self.layout.addWidget(self.display)를 사용하여 이 위젯을 레이아웃에 추가합니다.

 

 

계산기 버튼의 레이블을 저장하기 위해 목록 목록(버튼)을 정의합니다. 각 하위 목록은 버튼 행을 나타냅니다.

 

QGridLayout(grid_layout)을 사용하여 그리드 패턴으로 버튼을 정렬합니다. self.layout.addLayout(grid_layout)을 사용하여 기본 레이아웃에 그리드 레이아웃을 추가합니다.

 

중첩 루프를 사용하여 buttons 목록을 반복하고 각 레이블에 대해 QPushButton을 생성합니다. 각 버튼의 clicked 신호를 해당 레이블을 인수로 사용하여 self.handle_button을 호출하는 람다 함수에 연결합니다. 람다 함수는 버튼을 클릭할 때 올바른 레이블이 self.handle_button에 전달되도록 클로저의 레이블을 캡처합니다. grid_layout.addWidget(button, row, col)을 사용하여 그리드 레이아웃에 각 버튼을 추가합니다.

 

 

handle_button 메서드는 버튼을 클릭할 때 디스플레이 업데이트를 담당합니다. 레이블이 '='(등호)이면 eval을 사용하여 디스플레이에 입력된 표현식을 평가하려고 시도합니다. 평가가 성공하면 결과로 디스플레이를 업데이트합니다. 그렇지 않으면 오류 메시지가 표시됩니다. 다른 레이블의 경우 이미 디스플레이에 있는 텍스트에 레이블을 추가합니다.

 

마지막으로 main 함수에서 QApplication 클래스의 인스턴스를 만들고 Calculator 클래스의 인스턴스를 만들고 calculator.show()를 사용하여 계산기 창을 표시하고 로 이벤트 루프를 시작합니다. sys.exit(app.exec())

 

 

2. Pyqt6 계산기 실행

스크립트를 저장하고 Python 인터프리터를 사용하여 실행합니다.

python main.py

모든 것이 순조롭게 진행되면 디스플레이와 기본 계산기의 숫자 및 연산자를 나타내는 버튼이 있는 "간단한 계산기"라는 제목의 창이 표시됩니다.

파이썬 계산기

버튼을 클릭하여 산술식을 입력하고 디스플레이에서 결과를 관찰할 수 있습니다. 계산기는 더하기, 빼기, 곱하기 및 나누기 연산을 지원합니다. '=' 버튼을 누르면 표현식을 평가하고 결과를 표시합니다. 결과를 얻거나 오류가 발생한 후에도 새 표현식을 계속 입력할 수 있습니다.

 

 

3. 결론 및 의견

PyQt6을 사용하여 간단한 계산기를 만드는 방법을 살펴보았습니다. 기본 창 만들기, 레이아웃을 사용하여 위젯 배열, 신호 및 슬롯과의 사용자 상호 작용 처리를 포함하여 PyQt6 응용 프로그램의 기본 구조에 대해 배웠습니다.

 

 

[관련글]

[정보 및 유용한 팁] - 챗GPT 란? (CHAT GPT 사용)

 

챗GPT 란? (CHAT GPT 사용)

챗GPT 란 무엇일까요? 요즘 너무 핫하다 못해 마치 옆에 있는 선생님처럼 느껴지는 이 인공지능 AI에 대해서 이해하기 쉽게 정리하려 합니다. 결론적으로 챗GPT에게 질문을 하면, 형식적인 답이 아

2toy.net

[파이썬 (pythoon)] - 파이썬 벽돌깨기 게임 만들기 - python tkinter game

 

파이썬 벽돌깨기 게임 만들기 - python tkinter game

Python을 활용하여 Tkinter의 기능을 최대한 적용 후 몇줄 안되는 코딩으로 파이썬 벽돌깨기 게임 만들기 및 방법을 알아보려 합니다. pygame 라이브러리 없이 Canvas 위젯을 사용해서 생각보다 어렵지

2toy.net

[파이썬 (pythoon)] - 파이썬 독학 과연 가능할까?

 

파이썬 독학 과연 가능할까?

많은 프로그래밍 언어 중 파이썬은 정말 매력적이라고 생각합니다. 저도 처음 파이썬 독학, 공부를 시작할때 너무 설레였던거 같습니다. 막연히 매크로를 사용해서 업무를 편하게 하고 싶다는

2toy.net

[파이썬 (pythoon)] - [파이썬] python 간단 계산기 코딩

 

[파이썬] python 간단 계산기 코딩

파이썬을 이용한 간단한 계산기 코딩 1. 덧셈 add return value로 더하기 연산값을 output 2. 뺄셈 subtract subtract 함수에 a, b 숫자값을 입력 받아 return 3. 곱하기 multiply 마찬가지로 숫자값 적용 4. 나누기 d

2toy.net

[html 자바스크립트 study] - calculator css 계산기 만들기 디자인

 

calculator css 계산기 만들기 디자인

CSS는 웹 개발에서 디자인과 스타일을 구축하는 핵심 요소입니다. 이 글에서는 CSS를 활용하여 간단한 계산기를 디자인하는 방법을 알아보고자 합니다. 예시 코드와 함께 실제로 계산기를 만들어

2toy.net

반응형