前提・実現したいこと
PyQt5を使ってGUIで操作できるアプリケーションを作っている。
GUIに入力されたデータをテキストファイルに書き込みたい。
発生している問題・エラーメッセージ
入力された値をどのように取ってくればいいのかわからない。
WEBならリクエストにその値が含まれているのはわかるが、GUIはどうやって取ってくるのかわらない。
該当のソースコード
#!/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_())
このフォームに入力された値をテキストファイルに書き込みたい。
テキストファイルに書き込むコードは
str = ここにGUIに入力されたデータが入る f = open('text.txt', 'w') f.write(str) f.close()
を考えている。
回答2件
あなたの回答
tips
プレビュー