簡體   English   中英

如何在 PyQt5 中為 QGridLayout 添加拉伸?

[英]How to add stretch for QGridLayout in PyQt5?

我在網格布局中創建了小部件。 小部件根據窗口進行拉伸。 是否可以避免拉伸並將它們對齊,如下圖所示? 我創建了一個代碼來實現這一點,但我覺得這不是一個簡單的解決方案。 如果有更好的解決方案來實現這一點,請分享它們。

網格布局結果:

from PyQt5.QtWidgets import *
app =QApplication([])
window=QWidget()
GL=QGridLayout(window)
GL.addWidget(QPushButton('R1C1'),0,0)
GL.addWidget(QPushButton('R1C2'),0,1)
GL.addWidget(QPushButton('R2C1'),1,0)
GL.addWidget(QPushButton('R1C1'),1,1)
window.showMaximized()
app.exec_()

在此處輸入圖片說明

要求的結果:

在此處輸入圖片說明

我的代碼:

from PyQt5.QtWidgets import *
app =QApplication([])
window=QWidget()
VL=QVBoxLayout(window);HL=QHBoxLayout();VL.addLayout(HL)
GL=QGridLayout();HL.addLayout(GL)
GL.addWidget(QPushButton('R1C1'),0,0)
GL.addWidget(QPushButton('R1C2'),0,1)
GL.addWidget(QPushButton('R2C1'),1,0)
GL.addWidget(QPushButton('R1C1'),1,1)
HL.addStretch();VL.addStretch()
window.showMaximized()
app.exec_()

QGridLaout類沒有像QBoxLayout.addStretch()這樣的簡單方便的方法來實現這一點。 但是可以通過添加一些空的、可拉伸的行/列來實現相同的效果,如下所示:

GL.setRowStretch(GL.rowCount(), 1)
GL.setColumnStretch(GL.columnCount(), 1)

截屏

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM