對於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_())