PyQt5编程(25):在窗口中布局组件—网格对齐
除了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