美文网首页
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