【问题标题】:How to add stretch for QGridLayout in PyQt5?如何在 PyQt5 中为 QGridLayout 添加拉伸?
【发布时间】:2021-12-21 01:59:55
【问题描述】:

我在网格布局中创建了小部件。小部件基于窗口进行拉伸。是否可以避免拉伸并将它们对齐,如下图所示?我创建了一个代码来实现这一点,但我觉得这不是一个简单的解决方案。如果有更好的解决方案可以实现这一点,请分享。

网格布局结果:

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

【问题讨论】:

  • 看来你已经解决了,你的版本有什么问题(除了不必要的压缩和不可读的文字)?

标签: python layout pyqt5 qgridlayout


【解决方案1】:

QGridLaout 类没有像QBoxLayout.addStretch() 这样的简单便捷方法来执行此操作。但是可以通过添加一些空的、可拉伸的行/列来实现相同的效果,如下所示:

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

【讨论】:

  • 工作很酷。这是我所期望的。谢谢
猜你喜欢
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 2019-11-13
  • 2023-03-18
  • 2022-11-01
  • 1970-01-01
相关资源
最近更新 更多