PyQt - Classe QFormLayout
QFormLayoutè un modo conveniente per creare un modulo a due colonne, in cui ogni riga è costituita da un campo di input associato a un'etichetta. Per convenzione, la colonna di sinistra contiene l'etichetta e la colonna di destra contiene un campo di input. Vengono comunemente usati principalmente tre overload del metodo addRow () addLayout ().
Sr.No. | Metodi e descrizione |
---|---|
1 | addRow(QLabel, QWidget) Aggiunge una riga contenente l'etichetta e il campo di input |
2 | addRow(QLabel, QLayout) Aggiunge un layout figlio nella seconda colonna |
3 | addRow(QWidget) Aggiunge un widget su entrambe le colonne |
Esempio
Questo codice aggiunge un campo LineEdit al nome di input nella prima riga. Quindi aggiunge un layout di casella verticale per due campi indirizzo nella seconda colonna della riga successiva. Successivamente, nella seconda colonna della terza riga viene aggiunto un oggetto di layout riquadro orizzontale contenente due campi Pulsante di opzione. La quarta riga mostra due pulsanti "Invia" e "Annulla".
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()
Il codice precedente produce il seguente output: