锋哥原创的PyQt6视频教程:
2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计43条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。https://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() | 设置控件在水平和垂直方向上的间距 |
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", "用户名:"))