gpt4 book ai didi

python - PyQt:多个 QGridLayout

转载 作者:行者123 更新时间:2023-12-01 07:00:08 25 4
gpt4 key购买 nike

如何在一个小部件上拥有多个 QGridLayout?我希望左侧有一种网格布局,右侧有一种网格布局。

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys

class FormWidget(QWidget):

def __init__(self):
super(FormWidget, self).__init__( )

self.grid = QGridLayout(self)
self.grid2 = QGridLayout(self)
self.grid.addWidget(self.grid2)

if __name__ == '__main__':

app = QApplication(sys.argv)
ex = FormWidget()
sys.exit(app.exec_())

最佳答案

如果你想水平放置 2 个布局,那么你必须使用 QHBoxLayout:

import sys
from PyQt5.QtWidgets import QApplication, QGridLayout, QHBoxLayout, QWidget


class FormWidget(QWidget):
def __init__(self, parent=None):
super(FormWidget, self).__init__(parent)

left_grid_layout = QGridLayout()
right_grid_layout = QGridLayout()

lay = QHBoxLayout(self)
lay.addLayout(left_grid_layout)
lay.addLayout(right_grid_layout)

self.resize(640, 480)


if __name__ == "__main__":

app = QApplication(sys.argv)
ex = FormWidget()
ex.show()
sys.exit(app.exec_())

更新:

如果您想设置重量,则必须在拉伸(stretch)中设置它。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QGridLayout, QHBoxLayout, QTextEdit, QWidget


class FormWidget(QWidget):
def __init__(self, parent=None):
super(FormWidget, self).__init__(parent)

left_grid_layout = QGridLayout()
right_grid_layout = QGridLayout()

# for testing
left_grid_layout.addWidget(QTextEdit())
right_grid_layout.addWidget(QTextEdit())


lay = QHBoxLayout(self)
lay.addLayout(left_grid_layout, stretch=1)
lay.addLayout(right_grid_layout, stretch=2)

lay.setContentsMargins(
0, # left
100, # top
0, # right
100 # bottom
)

self.resize(640, 480)


if __name__ == "__main__":

app = QApplication(sys.argv)
ex = FormWidget()
ex.show()
sys.exit(app.exec_())

关于python - PyQt:多个 QGridLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676129/

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