PyQt5编程(26):在窗口中布局组件—表单对齐

2018-01-01  本文已影响0人  用电热毯烤猪
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):

  1. addRow(QString <wbr>labelText, QWidget field)
  2. addRow(QWidget label, QWidget field)
  3. addRow(QWidget <wbr>widget)
  4. addRow(QString <wbr>labelText, QLayout field)
  5. addRow(QWidget label, QLayout field)
  6. addRow(QLayout <wbr>widget)

<wbr> <wbr> <wbr> 格式1,4可以通过“&”字母实现与输入型组件的关联。格式2,4则需要通过标签组件的setBuddy( )方法实现关联。

<wbr> <wbr> <wbr> 格式1,4可以通过“&”字母实现与输入型组件的关联。格式2,4则需要通过标签组件的setBuddy( )方法实现关联。如果参数1超出范围,则添加到容器的末尾。

上一篇下一篇

猜你喜欢

热点阅读