前提・実現したいこと
下のようなWidgetの配置で,緯距(X)以降を下の段に配置したいです.
ヒントでいいので,ご教示ください.
該当のソースコード
Python
1#!/usr/bin/env python 2 3from PyQt5.QtWidgets import (QApplication, QWidget, 4 QGridLayout, QVBoxLayout, QHBoxLayout, 5 QLabel, QLineEdit, QPushButton) 6 7def factorial(n): 8 if n < 0: 9 return -1 10 elif n == 0: 11 return 1 12 else: 13 return n * factorial(n-1)#calcuation 14 15class MainWindow(QWidget): 16 def __init__(self, parent=None): 17 super(MainWindow, self).__init__(parent) 18 19 self.inputDegree = QLineEdit() 20 self.inputMinute = QLineEdit() 21 self.inputSecond = QLineEdit() 22 self.outputLat = QLineEdit() 23 self.outputLat.setReadOnly(True) 24 self.outputLon = QLineEdit() 25 self.outputLon.setReadOnly(True) 26 27 self.calcButton = QPushButton("&Calc") 28 self.calcButton.clicked.connect(self.calc) 29 30 lineLayout_1 = QGridLayout() 31 lineLayout_1.addWidget(QLabel("azimuth"), 0, 0) 32 lineLayout_1.addWidget(self.inputDegree, 0, 1) 33 lineLayout_1.addWidget(QLabel("°"), 0, 2) 34 lineLayout_1.addWidget(self.inputMinute, 0, 3) 35 lineLayout_1.addWidget(QLabel("'"), 0, 4) 36 lineLayout_1.addWidget(self.inputSecond, 0, 5) 37 lineLayout_1.addWidget(QLabel("''"), 0, 6) 38 lineLayout_2 = QGridLayout() 39 lineLayout_2.addWidget(QLabel("緯距(X)"), 0, 0) 40 lineLayout_2.addWidget(self.outputLat, 0, 1) 41 lineLayout_2.addWidget(QLabel("経距(Y)"), 0, 2) 42 lineLayout_2.addWidget(self.outputLon, 0, 3) 43 44 buttonLayout = QVBoxLayout() 45 buttonLayout.addWidget(self.calcButton) 46 47 mainLayout = QHBoxLayout() 48 mainLayout.addLayout(lineLayout_1) 49 mainLayout.addLayout(lineLayout_2) 50 mainLayout.addLayout(buttonLayout) 51 52 self.setLayout(mainLayout) 53 self.setWindowTitle("緯距・経距計算") 54 55 def calc(self): 56 n = int(self.inputLine.text())##input 57 r = factorial(n) 58 self.outputLine.setText(str(r)) 59 60if __name__ == '__main__': 61 import sys 62 app = QApplication(sys.argv) 63 main_window = MainWindow() 64 65 main_window.show() 66 sys.exit(app.exec_())
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。