Python: PyQtで電卓を作成する - Fuwafuwa's memorandum

Fuwafuwa's memorandum

Data analysis, development, reading, daily feeling.
MENU

Python: PyQtで電卓を作成する

下記のようなツールを作成しました。
PyQt_Cal.png
inputに計算式を入力し
Caluculationボタンを押下するとoutputに計算結果が反映されます。

from PyQt5.QtWidgets import (QApplication, QWidget,
                             QGridLayout, QVBoxLayout, QHBoxLayout,
                             QLabel, QLineEdit, QPushButton)

def cal(n):
    try:       
        result = eval(n)
    except:
        result = "計算式を入力してください"
    return result

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        
        self.inputLine = QLineEdit()
        self.outputLine = QLineEdit()
        self.outputLine.setReadOnly(True)    
        
        self.calcButton = QPushButton("Caluculation")
        self.calcButton.clicked.connect(self.calc)

        lineLayout = QGridLayout()
        lineLayout.addWidget(QLabel("input"), 0, 0)
        lineLayout.addWidget(self.inputLine, 0, 1)
        lineLayout.addWidget(QLabel("output"), 2, 0)
        lineLayout.addWidget(self.outputLine, 2, 1)

        buttonLayout = QVBoxLayout()
        buttonLayout.addWidget(self.calcButton)
        lineLayout.addWidget(self.calcButton, 1, 1)

        mainLayout = QHBoxLayout()
        mainLayout.addLayout(lineLayout)
        mainLayout.addLayout(buttonLayout)

        self.setLayout(mainLayout)
        self.setWindowTitle("Caluculation")
        
    def calc(self):
        r = cal(self.inputLine.text())
        self.outputLine.setText(str(r))        
        
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    main_window = MainWindow()

    main_window.show()
    sys.exit(app.exec_())

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。