PyQt QFormLayout

Resumo : neste tutorial, você aprenderá como usar o PyQt QFormLayoutpara organizar widgets em um formulário.

Introdução ao PyQt QFormLayout

Ao criar um formulário de entrada de dados, muitas vezes você precisa colocar os campos em linhas. E em cada linha, você coloca um rótulo próximo a um widget de entrada.

PyQt fornece um formulário conveniente de duas colunas que organiza os widgets em um formulário. A coluna da esquerda possui um rótulo e a coluna da direita possui um widget de entrada.

Para criar um layout de formulário, você usa QFormLayouta classe:

layout = QFormLayout(self)
self.setLayout(layout) # self is the parent widgetLinguagem de código:  Python  ( python )

Adicionar widgets ao layout do formulário pode ser feito com o addRow()método. Por exemplo:

layout.addRow('Field 1', input_widget1)
layout.addRow('Field 2', input_widget2)Linguagem de código:  Python  ( python )

O addRow()método pega uma string e um widget e cria automaticamente o QLabelwidget para a string.

Se você passar um único widget como QLabel, o widget abrangerá automaticamente ambas as colunas. Na prática, você pode usar esse recurso para criar títulos ou rótulos de seção.

Além de oferecer comodidade, QFormLayoutsegue as diretrizes de aparência da plataforma. Por exemplo, quando usados ​​no macOS, os rótulos são justificados à direita, enquanto quando usados ​​no Windows, os rótulos são justificados à esquerda.

Além disso, quando exibido em uma tela estreita, o layout é automaticamente recolhido em uma única coluna com rótulos acima dos widgets de entrada.

Exemplo PyQt QFormLayout

O exemplo a seguir mostra como criar um formulário de inscrição usando QFormLayout:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit,  QFormLayout


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('Sign Up Form')

        layout = QFormLayout()
        self.setLayout(layout)

        layout.addRow('Name:', QLineEdit(self))
        layout.addRow('Email:', QLineEdit(self))
        layout.addRow('Password:', QLineEdit(self, echoMode=QLineEdit.EchoMode.Password))
        layout.addRow('Confirm Password:', QLineEdit(self, echoMode=QLineEdit.EchoMode.Password))
        layout.addRow('Phone:', QLineEdit(self))

        layout.addRow(QPushButton('Sign Up'))

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec())Linguagem de código:  Python  ( python )

Saída:

Resumo

  • Use PyQt QFormLayoutpara criar formulários de entrada de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *