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

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

作者: 用电热毯烤猪 | 来源:发表于2018-01-01 21:45 被阅读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):

    • addRow( ) - 添加到容器的末尾。格式有:
    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( )方法实现关联。

    • insertRow( ) - 添加到容器的指定位置。格式有:
      1. insertRow(int row,QString <wbr>labelText, QWidget field)
      2. insertRow(int row,QWidget label, QWidget field)
      3. insertRow(int row,QWidget <wbr>widget)
      4. insertRow(int row,QString <wbr>labelText, QLayout field)
      5. insertRow(int row,QWidget label, QLayout field)
      6. insertRow(int row,QLayout <wbr>widget)

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/qurxnxtx.html