gpt4 book ai didi

qt gridlayout跨越多列

转载 作者:行者123 更新时间:2023-12-03 05:43:14 26 4
gpt4 key购买 nike

我正在尝试创建这个几何图形:

 _ ___
| | |
|1| 3 |
|_|___|
|_2_|

1 框又高又瘦,2 框又短又宽。我无法完全正确地获得布局。当我将 1 和 2 的 rowSpan 和 columnSpan 从 0 更改为 1 时,我看到底部框的相对位置正确,但高度错误,并且框 1 的宽度错误。

这对 qq 有帮助,但没有完全解决我的问题:How to arrange the items in QGridLayout as shown?

import sys
from PyQt4 import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()

def initUI(self):
textEdit1 = QtGui.QTextEdit("LHS rectangle")
textEdit2 = QtGui.QTextEdit("Bottom rectangle")
textEdit3 = QtGui.QTextEdit("Central square")
self.gridLayout = QtGui.QGridLayout()
self.gridLayout.addWidget(textEdit1, 0, 0, 2, 0)
self.gridLayout.addWidget(textEdit2, 2, 1, 0, 2)
self.gridLayout.addWidget(textEdit3, 0, 1, 2, 2)
self.setLayout(self.gridLayout)
self.show()

def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

if __name__ == '__main__':
main()

最佳答案

您需要设置适当的拉伸(stretch)因子来更改分配给每行/列的空间量:

    self.gridLayout.addWidget(textEdit1, 0, 0)
self.gridLayout.addWidget(textEdit2, 1, 1)
self.gridLayout.addWidget(textEdit3, 0, 1)
self.gridLayout.setColumnStretch(0, 1)
self.gridLayout.setColumnStretch(1, 3)
self.gridLayout.setRowStretch(0, 3)
self.gridLayout.setRowStretch(1, 1)

结果:

screenshot

关于qt gridlayout跨越多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com