PyQt5编程(26):在窗口中布局组件—表单对齐
QFormLayout类用来管理输入型组件和关联标签组成的Form表单。 默认容器由两列组成:第一列为关联输出标签,第二列为输入型组件。 如果关联标签文本中的某个字母之前有"&"字符(显示为带下划线的字母),则此 通过按组合快捷键(Alt + 字母),可将光标移到标签右侧的输入型组件。该类的继承层次结构如下:
(QObject,QLayoutltem) - QLayout - QFormLayout
构造函数为:
QFormLayout([[QWidget parent])
与QHBoxLayout和QVBoxLayout一样,不是QWidget类的继承者,因此没有自己的窗口,不能单独使用。 因此,容器作为子控件使用。要在构造函数中指定父组件。如果没有,可将容器作参数,调用父组件的setLayout( )方法。使用示例:
-- coding: utf-8 --
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QFormLayout")
window.resize(300, 150)
lineEdit = QtWidgets.QLineEdit()
textEdit = QtWidgets.QTextEdit()
button1 = QtWidgets.QPushButton("&Send")
button2 = QtWidgets.QPushButton("&Clear")
hbox = QtWidgets.QHBoxLayout()
hbox.addWidget(button1)
hbox.addWidget(button2)
form = QtWidgets.QFormLayout()
form.addRow("&Name:", lineEdit)
form.addRow("&Description:", textEdit)
form.addRow(hbox)
window.setLayout(form)
window.show()
sys.exit(app.exec_())
运行后的效果:
PyQt5编程(26):在窗口中布局组件—表单对齐
该类有以下方法(详见http://doc.qt.io/qt-5/qformlayout.html):
addRow( ) - 添加到容器的末尾。格式有:
addRow(QString labelText, QWidget field)
addRow(QWidget label, QWidget field)
addRow(QWidget widget)
addRow(QString labelText, QLayout field)
addRow(QWidget label, QLayout field)
addRow(QLayout widget)
格式1,4可以通过“&”字母实现与输入型组件的关联。格式2,4则需要通过标签组件的setBuddy( )方法实现关联。
insertRow( ) - 添加到容器的指定位置。格式有:
insertRow(int row,QString labelText, QWidget field)
insertRow(int row,QWidget label, QWidget field)
insertRow(int row,QWidget widget)
insertRow(int row,QString labelText, QLayout field)
insertRow(int row,QWidget label, QLayout field)
insertRow(int row,QLayout widget)
格式1,4可以通过“&”字母实现与输入型组件的关联。格式2,4则需要通过标签组件的setBuddy( )方法实现关联。如果参数1超出范围,则添加到容器的末尾。
<wbr> <wbr> QFormLayout类用来管理输入型组件和关联标签组成的Form表单。 <wbr>默认容器由两列组成:第一列为关联输出标签,第二列为输入型组件。 如果关联标签文本中的某个字母之前有"&"字符(显示为带下划线的字母),则此 通过按组合快捷键(Alt + 字母),可将光标移到标签右侧的输入型组件。该类的继承层次结构如下:
<wbr> <wbr> <wbr>(QObject,QLayoutltem) - QLayout - QFormLayout
<font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949"> <wbr> <wbr> 构造函数为:</font>
<font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949"> <wbr> <wbr> <wbr></font>QFormLayout<font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949">([</font>
[QWidget <wbr>
<wbr microsoft="" background-color:="" style="color: rgb(73, 73, 73);">
p
<font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949">arent])
<wbr> <wbr> <wbr> <wbr>与QHBoxLayout和QVBoxLayout一样,不是QWidget类的继承者,因此没有自己的窗口,不能单独使用。 因此,容器作为子控件使用。要在构造函数中指定父组件。如果没有,可将容器作参数,调用父组件的setLayout( )方法。使用示例:</font>
<font color="#494949"># -- coding: utf-8 --</font>
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QFormLayout")
window.resize(300, 150)
lineEdit = QtWidgets.QLineEdit()
textEdit = QtWidgets.QTextEdit()
button1 = QtWidgets.QPushButton("&Send")
button2 = QtWidgets.QPushButton("&Clear")
hbox = QtWidgets.QHBoxLayout()
hbox.addWidget(button1)
hbox.addWidget(button2)
form = QtWidgets.QFormLayout()
form.addRow("&Name:", lineEdit)
form.addRow("&Description:", textEdit)
form.addRow(hbox)
window.setLayout(form)
window.show()
sys.exit(app.exec_())
运行后的效果:
PyQt5编程(26):在窗口中布局组件—表单对齐<wbr> <wbr> <wbr>
<wbr> <wbr> 该类有以下方法(详见http://doc.qt.io/qt-5/qformlayout.html):
- addRow( ) - 添加到容器的末尾。格式有:
- addRow(QString <wbr>labelText, QWidget field)
- addRow(QWidget label, QWidget field)
- addRow(QWidget <wbr>widget)
- addRow(QString <wbr>labelText, QLayout field)
- addRow(QWidget label, QLayout field)
- addRow(QLayout <wbr>widget)
<wbr> <wbr> <wbr> 格式1,4可以通过“&”字母实现与输入型组件的关联。格式2,4则需要通过标签组件的setBuddy( )方法实现关联。
- insertRow( ) - 添加到容器的指定位置。格式有:
- insertRow(int row,QString <wbr>labelText, QWidget field)
- insertRow(int row,QWidget label, QWidget field)
- insertRow(int row,QWidget <wbr>widget)
- insertRow(int row,QString <wbr>labelText, QLayout field)
- insertRow(int row,QWidget label, QLayout field)
- insertRow(int row,QLayout <wbr>widget)
<wbr> <wbr> <wbr> 格式1,4可以通过“&”字母实现与输入型组件的关联。格式2,4则需要通过标签组件的setBuddy( )方法实现关联。如果参数1超出范围,则添加到容器的末尾。