首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQt:多QGridLayout

PyQt:多QGridLayout
EN

Stack Overflow用户
提问于 2019-11-02 23:20:11
回答 1查看 715关注 0票数 1

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

代码语言:javascript
复制
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_())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-03 00:01:53

如果要水平放置2个布局,则必须使用QHBoxLayout:

代码语言:javascript
复制
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_())

更新:

如果你想设置一个重量,你必须在拉伸设置它。

代码语言:javascript
复制
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_())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58676129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档