Skip to content

Instantly share code, notes, and snippets.

@takahub1
Created April 28, 2017 16:19
Show Gist options
  • Save takahub1/3bbfe18f17492a9aa9f00fa0f689994b to your computer and use it in GitHub Desktop.
Save takahub1/3bbfe18f17492a9aa9f00fa0f689994b to your computer and use it in GitHub Desktop.
sudo apt install python3-pyqt5
#!/usr/bin/env python
from PyQt5.QtWidgets import (QApplication, QWidget,
QGridLayout, QVBoxLayout, QHBoxLayout,
QLabel, QLineEdit, QPushButton)
def factorial(n):
if n < 0:
return -1
elif n == 0:
return 1
else:
return n * factorial(n-1)
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("&Calc")
self.calcButton.clicked.connect(self.calc)
lineLayout = QGridLayout()
lineLayout.addWidget(QLabel("num"), 0, 0)
lineLayout.addWidget(self.inputLine, 0, 1)
lineLayout.addWidget(QLabel("result"), 1, 0)
lineLayout.addWidget(self.outputLine, 1, 1)
buttonLayout = QVBoxLayout()
buttonLayout.addWidget(self.calcButton)
mainLayout = QHBoxLayout()
mainLayout.addLayout(lineLayout)
mainLayout.addLayout(buttonLayout)
self.setLayout(mainLayout)
self.setWindowTitle("Factorial")
def calc(self):
n = int(self.inputLine.text())
r = factorial(n)
self.outputLine.setText(str(r))
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment