Pyqt-qformlayout-class

提供:Dev Guides
移動先:案内検索

PyQt-QFormLayoutクラス

*QFormLayout* は、各行がラベルに関連付けられた入力フィールドで構成される2列フォームを作成する便利な方法です。 慣例として、左の列にはラベルが含まれ、右の列には入力フィールドが含まれます。 主にaddRow()メソッドのaddLayout()の3つのオーバーロードがよく使用されます。
Sr.No. Methods & Description
1

addRow(QLabel, QWidget)

ラベルと入力フィールドを含む行を追加します

2

addRow(QLabel, QLayout)

2列目に子レイアウトを追加します

3

addRow(QWidget)

両方の列にまたがるウィジェットを追加します

このコードは、最初の行の入力名にLineEditフィールドを追加します。 次に、次の行の2列目に2つの住所フィールドの垂直ボックスレイアウトを追加します。 次に、2つのラジオボタンフィールドを含む水平ボックスレイアウトオブジェクトが、3行目の2列目に追加されます。 4行目には、「送信」と「キャンセル」の2つのボタンがあります。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   l1 = QLabel("Name")
   nm = QLineEdit()

   l2 = QLabel("Address")
   add1 = QLineEdit()
   add2 = QLineEdit()
   fbox = QFormLayout()
   fbox.addRow(l1,nm)
   vbox = QVBoxLayout()

   vbox.addWidget(add1)
   vbox.addWidget(add2)
   fbox.addRow(l2,vbox)
   hbox = QHBoxLayout()

   r1 = QRadioButton("Male")
   r2 = QRadioButton("Female")
   hbox.addWidget(r1)
   hbox.addWidget(r2)
   hbox.addStretch()
   fbox.addRow(QLabel("sex"),hbox)
   fbox.addRow(QPushButton("Submit"),QPushButton("Cancel"))

   win.setLayout(fbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

上記のコードは、次の出力を生成します-

QFormLayoutクラスの出力