質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

361閲覧

widgetの縦方向の配置

LenItsuki

総合スコア89

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/09/17 06:43

編集2018/09/17 06:50

前提・実現したいこと

下のような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_())

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

できました.お騒がせしてすみません.
イメージ説明

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 = QHBoxLayout() 46 # buttonLayout.addLayout(lineLayout_1) 47 # buttonLayout.addLayout(lineLayout_2) 48 buttonLayout.addWidget(self.calcButton) 49 50 # mainLayout = QHBoxLayout() 51 mainLayout = QVBoxLayout() 52 mainLayout.addLayout(lineLayout_1) 53 mainLayout.addLayout(lineLayout_2) 54 # mainLayout.addLayout(buttonLayout) 55 56 # buttonLayout = QVBoxLayout() 57 AllLayout = QHBoxLayout() 58 AllLayout.addLayout(mainLayout) 59 AllLayout.addLayout(buttonLayout) 60 # buttonLayout.addLayout(lineLayout_2) 61 # buttonLayout.addWidget(self.calcButton) 62 63 self.setLayout(AllLayout) 64 self.setWindowTitle("緯距・経距計算") 65 66 def calc(self): 67 n = int(self.inputLine.text())##input 68 r = factorial(n) 69 self.outputLine.setText(str(r)) 70 71if __name__ == '__main__': 72 import sys 73 app = QApplication(sys.argv) 74 main_window = MainWindow() 75 76 main_window.show() 77 sys.exit(app.exec_())

投稿2018/09/17 07:10

LenItsuki

総合スコア89

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問