PyQt6 网格布局Grid Layout (QGridLayout)

锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计43条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/

网格控件的基类是QGridLayout。QGridLayout 类将控件放置到网格中布局,它本身会从父窗口或父布局中占据尽可能多的界面空间,然后把自己的空间划分为行和列,再把每个控件塞到设置好的一个或多个单元格中。

QGridLayout网格控件的常用方法:

方法 说明
addwidget (Qwidget widget,int row,int column,Qt.Alignmentalignment) 添加控件,主要参数说明如下。 widget:要添加的控件; row:添加控件的行数; column:添加控件的列数; alignment:控件的对齐方式
addWidget ( QWidget widget,int fromRow,int fromColumn,int rowSpan, int columnSpan, Qt.Alignment alignment) 跨行和列添加控件,主要参数说明如下。 widget:要添加的控件; fromRow:添加控件的起始行数; fromColumn:添加控件的起始列数; rowSpan:控件跨越的行数; columnSpan:控件跨越的列数; alignment:控件的对齐方式
setRowStretch() 设置行比例
setColumnStretch() 设置列比例
setSpacing() 设置控件在水平和垂直方向上的间距

PyQt6 网格布局Grid Layout (QGridLayout)_第1张图片

UI生成的参考代码:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(517, 404)
        self.gridLayoutWidget = QtWidgets.QWidget(parent=Form)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(70, 40, 361, 311))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setContentsMargins(10, 10, 10, 10)
        self.gridLayout.setHorizontalSpacing(26)
        self.gridLayout.setVerticalSpacing(36)
        self.gridLayout.setObjectName("gridLayout")
        self.lineEdit = QtWidgets.QLineEdit(parent=self.gridLayoutWidget)
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout.addWidget(self.lineEdit, 0, 2, 1, 1)
        self.label_2 = QtWidgets.QLabel(parent=self.gridLayoutWidget)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
        self.label = QtWidgets.QLabel(parent=self.gridLayoutWidget)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.lineEdit_2 = QtWidgets.QLineEdit(parent=self.gridLayoutWidget)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout.addWidget(self.lineEdit_2, 1, 2, 1, 1)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label_2.setText(_translate("Form", "密码:"))
        self.label.setText(_translate("Form", "用户名:"))

你可能感兴趣的:(Python,QGridLayout,PyQt6,PyQt,python)