PyQt5 - QFormLayout 類



QFormLayout 是一種便捷的方法來建立兩列表單,其中每一行均包含與標籤相關聯的輸入欄位。按慣例,左列包含標籤,右列包含輸入欄位。主要經常使用 addRow() 方法的三個過載 addLayout()。

序號。 方法和說明
1

addRow(QLabel, QWidget)

新增包含標籤和輸入欄位的一行

2

addRow(QLabel, QLayout)

在第二列中新增子佈局

3

addRow(QWidget)

新增跨兩列的小部件

示例

此程式碼在第一行添加了一個 LineEdit 欄位以輸入名稱。然後,它在下一行的第二列中新增一個垂直框佈局以用於兩個地址欄位。接下來,在第三行的第二列中新增一個包含兩個單選按鈕欄位的水平框佈局物件。第四行顯示兩個按鈕“提交”和“取消”。

import sys 
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets 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 Class Output
pyqt_layout_management.htm
廣告
© . All rights reserved.