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

PyQt5编程(25):在窗口中布局组件—网格对齐

作者: 用电热毯烤猪 | 来源:发表于2018-01-01 21:45 被阅读0次
    除了QHBoxLayout水平布局类和QVBoxLayout垂直布局类外,用作组件对齐的类还有QGridLayout网格布局类。他的继承层次结构如下:
     (QObject,QLayoutltem) - QLayout - QGridLayout
    构造函数为:
    QGridLayout([[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("QGridLayout")
    window.resize(150, 100)
    button1 = QtWidgets.QPushButton("1")
    button2 = QtWidgets.QPushButton("2")
    button3 = QtWidgets.QPushButton("3")
    button4 = QtWidgets.QPushButton("4")
    grid = QtWidgets.QGridLayout() #创建网格
    grid.addWidget(button1, 0, 0) # 添加组件
    grid.addWidget(button2, 0, 1)
    grid.addWidget(button3, 1, 0)
    grid.addWidget(button4, 1, 1)
    window.setLayout(grid) # 指定父组件
    window.show()
    sys.exit(app.exec_())

    该类的方法有:
    
    addwidget( ) -添加组件到网格。函数格式:
    addWidget(Component,Row,Column [, alignment = 0])
    addWidget(Component,Row,Column,NRows, NColumns [, alignment = 0])
    函数1的4个参数:
    参数1:要加入容器的组件
    参数2:组件所在行,0为第一行
    参数3:组件所在列,0为第一列
    参数4:对齐方式,可选项
    函数2的4个参数:
    参数1:要加入容器的组件
    参数2:组件所在行,0为第一行
    参数3:组件所在列,0为第一列
    参数4:组件占用的行数
    参数5:组件占用的列数
    参数6:对齐方式,可选项
    addLayout( ) - 添中容器到网格中。格式为:
     addLayout(Component,Row,Column [, alignment = 0])
    addLayout(Component,Row,Column,NRows, NColumns [, alignment = 0])
    参数1:要加入容器的容器。其他参数同addWidet( ).
    
    要删除和替换组件,使用removeWidget()和replaceWidget()方法,详见PyQt5编程(24)。
    此外,该类的方法还有setRowMinimumHeight( ),setColumnMinimumWidth( ),setRowStretch( ),setColumnStretch( )等,详见http://doc.qt.io/qt-5/qgridlayout.html
    

    <wbr> <wbr> 除了QHBoxLayout水平布局类和

    QVBoxLayout垂直布局类外,用作组件对齐的类还有

    <font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949">QGridLayout网格布局类。他的继承层次结构如下:</font>

    <font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949"> <wbr> <wbr> <wbr>(QObject,QLayoutltem) - QLayout - QGridLayout
    <wbr> <wbr> 构造函数为:</font>

    <font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949"> <wbr> <wbr> QGridLayout([</font>

    [QWidget <wbr>

    <wbr style="color: rgb(73, 73, 73); font-family:" microsoft="" background-color:="">

    p

    <font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949">arent])</font>

    <font face="Microsoft YaHei, Helvetica Neue, SimSun" color="#494949"> <wbr> <wbr> 与</font>QHBoxLayout和QVBoxLayout一样,不是QWidget类的继承者,因此没有自己的窗口,不能单独使用。 因此,容器作为子控件使用。要在构造函数中指定父组件。如果没有,可将容器作参数,调用父组件的setLayout( )方法。使用示例:

    -- coding: utf-8 --

    from PyQt5 import QtWidgets

    import sys

    app = QtWidgets.QApplication(sys.argv)

    window = QtWidgets.QWidget() <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr># 父组件

    window.setWindowTitle("QGridLayout")

    window.resize(150, 100)

    button1 = QtWidgets.QPushButton("1")

    button2 = QtWidgets.QPushButton("2")

    button3 = QtWidgets.QPushButton("3")

    button4 = QtWidgets.QPushButton("4")

    grid = QtWidgets.QGridLayout() <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>#创建网格

    grid.addWidget(button1, 0, 0) <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> # 添加组件

    grid.addWidget(button2, 0, 1)

    grid.addWidget(button3, 1, 0)

    grid.addWidget(button4, 1, 1)

    window.setLayout(grid) <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>

    <wbr>

    <wbr style="color: rgb(73, 73, 73); font-family:" microsoft="" background-color:="">

    指定父组件

    window.show()

    sys.exit(app.exec_())

    <wbr> <wbr> 该类的方法有:

    • addwidget( ) -添加组件到网格。函数格式:
      addWidget(Component,Row,Column [, alignment = 0])
      addWidget(Component,Row,Column,NRows, NColumns [, alignment = 0])
      函数1的4个参数:
      参数1:要加入容器的组件
      参数2:组件所在行,0为第一行
      参数3:组件所在列,0为第一列
      参数4:对齐方式,可选项
      函数2的4个参数:
      参数1:要加入容器的组件
      参数2:组件所在行,0为第一行
      参数3:组件所在列,0为第一列
      参数4:组件占用的行数
      参数5:组件占用的列数
      参数6:对齐方式,可选项
    • addLayout( ) - 添中容器到网格中。格式为:
      <wbr>addLayout(Component,Row,Column [, alignment = 0])
      addLayout(Component,Row,Column,NRows, NColumns [, alignment = 0])
      参数1:要加入容器的容器。其他参数同addWidet( ).

    <wbr> <wbr> <wbr>要删除和替换组件,使用removeWidget()和replaceWidget()方法,详见PyQt5编程(24)。

    <wbr> <wbr> 此外,该类的方法还有setRowMinimumHeight( ),setColumnMinimumWidth( ),setRowStretch( ),setColumnStretch( )等,详见http://doc.qt.io/qt-5/qgridlayout.html

    相关文章

      网友评论

          本文标题:PyQt5编程(25):在窗口中布局组件—网格对齐

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