对于PyQt5的栅格布局函数,主要是实现多个控件之间的栅格布局形式,一般有两种设置方式:
1、Qdesigner布局设置时直接使用栅格布局函数,便可以把所需要布局的控件直接按照栅格方式来进行布局;
2、直接使用Python语言QGridLayout函数参数设置来进行对应的栅格布局,在Python语言直接进行栅格函数QGridLayout布局设置时,具体的函数参数将其含义如下所示:
QGridLayout.addWidgets(控件对象,Rowindex.Columnindex,Row,Cloumn):
(1)控件对象是指你需要你进行栅格布局的控件对象;
(2)Rowindex是指需要将控件对象放置的行号;
(3)Columnindex是指需要将控件放置的列号;
(4)Row是指需要将控件对象放置的行尺寸,即长度大小,以1为单位的长度;
(5)Column是指需要将控件对象放置的列尺寸,即宽度大小,以1为单位的长度;
具体的训练代码如下所示:
from PyQt5.QtWidgets import *
import sys
class QLabelbuddy(QDialog):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("QLabel设置伙伴关系")
namelabel=QLabel("&Name",self) #设置伙伴关系的方式是使用Setbuddy函数将两个控件联系在一起,然后对于label控件使用(“&+名字”),即可实现Alt+首字母的快捷键直接到对应的控件
nameLineEdit=QLineEdit(self)
#设置伙伴关系
namelabel.setBuddy(nameLineEdit)
passwordlabel=QLabel("&Password",self)
passwordlineedit=QLineEdit(self)
passwordlabel.setBuddy(passwordlineedit) #需要使用Setbuddy函数来设置伙伴关系,将其联系在一起
#设置伙伴关系
btnOK=QPushButton("&OK") #设置快捷键的方式
btnCancle=QPushButton("&Cancle")
mainlayout=QGridLayout(self) # 栅格布局定义
mainlayout.addWidget(namelabel,0,0) #放置在栅格布局第一行和第一列(0,0)
mainlayout.addWidget(nameLineEdit,0,1,1,2) #将其放置在栅格布局第一行和第二列,另外占用的空间是一行两列,即是label的宽度的两倍
mainlayout.addWidget(passwordlabel,1,0)
mainlayout.addWidget(passwordlineedit,1,1,1,2)
mainlayout.addWidget(btnOK,2,1)
mainlayout.addWidget(btnCancle,2,2)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QLabelbuddy()
w.show()
sys.exit(app.exec_())