上一篇的筆記學(xué)習(xí)了網(wǎng)格布局,其中的每一個(gè)按鈕對(duì)應(yīng)到一個(gè)網(wǎng)格,其實(shí)我們的窗口部件可以占據(jù)多個(gè)網(wǎng)格,我們可以據(jù)此做一個(gè)類似文本輸入的窗口。本文由 Cescfangs 譯自 ZetCode pyqt5系列教程 并作適當(dāng)修改。
先上源代碼:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QGridLayout, QTextEdit, QLineEdit
class exp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
title = QLabel('Title')
author = QLabel('Author')
review = QLabel('Review')
titleEdit = QLineEdit()
authorEdit = QLineEdit()
reviewEdit = QTextEdit()
grid = QGridLayout()
grid.setSpacing(10)
grid.addWidget(title, 1, 0)
grid.addWidget(titleEdit, 1, 1)
grid.addWidget(author, 2, 0)
grid.addWidget(authorEdit, 2, 1)
grid.addWidget(review, 3, 0)
grid.addWidget(reviewEdit, 3, 1, 5, 1)
self.setGeometry(300, 300, 400, 400)
self.setLayout(grid)
self.setWindowTitle('review')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = exp()
sys.exit(app.exec_())
以上的代碼創(chuàng)建了三個(gè)QLabel部件,兩個(gè)QLineEdit部件和一個(gè)QTextEdit部件共六個(gè)部件,通過QGridLayout將這六個(gè)部件進(jìn)行排列。
grid = QGridLayout()
grid.setSpacing(10)
以上代碼創(chuàng)建了一個(gè)網(wǎng)格布局,setSpacing(10)設(shè)置了網(wǎng)格間的距離為10。
grid.addWidget(reviewEdit, 3, 1, 5, 1)
之前的5個(gè)部件都是占據(jù)一個(gè)網(wǎng)格,現(xiàn)在reviewEdit占據(jù)了(3,1),(4,1),(5,1)共3個(gè)網(wǎng)格。

文本框