PyQt4 Box布局

Posted 月光诗人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt4 Box布局相关的知识,希望对你有一定的参考价值。

使用布局类别方式的布局管理器比绝对方式的布局管理器更加灵活实用。它是窗口部件的首选布局管理方式。最基本的布局类别是QHBoxLayout和QVBoxLayout布局管理方式,分别将窗口部件水平和垂直排列。

假设我们要将两个按钮放在窗口的右下角。为创建该布局,我们需要使用一个水平Box和一个垂直Box,另外为了创建必须的空白空间,我们还需要添加一个伸缩间隔元素(stretch factor)。

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class BoxLayout(QtGui.QWidget):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self)
        self.setWindowTitle(box layout)
        ok = QtGui.QPushButton(OK)
        cancel = QtGui.QPushButton(Cancel)
        hbox = QtGui.QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(ok)
        hbox.addWidget(cancel)
        vbox = QtGui.QVBoxLayout()
        vbox.addStretch(1)
        vbox.addLayout(hbox)
        self.setLayout(vbox)
        self.resize(300, 150)
        
app = QtGui.QApplication(sys.argv)
box = BoxLayout()
box.show()
sys.exit(app.exec_())

效果:

技术分享

        ok = QtGui.QPushButton(‘OK‘)
        cancel = QtGui.QPushButton(‘Cancel‘)

以上两句用来创建两个按钮(OK和Cancel按钮)。

        hbox = QtGui.QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(ok)
        hbox.addWidget(cancel)

以上四句用来创建一个水平box布局,然后加入一个伸缩间隔元素与两个按钮。

        vbox = QtGui.QVBoxLayout()
        vbox.addStretch(1)
        vbox.addLayout(hbox)

为创建需要的布局,我们使用以上语句创建了一个垂直box布局并将水平box布局放入垂直box布局中。

        self.setLayout(vbox)

最后我们设置窗口的主布局。

 

以上是关于PyQt4 Box布局的主要内容,如果未能解决你的问题,请参考以下文章

Pyqt4学习笔记-布局

如何在 PyQt4 中将 QImage 插入到 NxN 网格布局中?

PyQt4(简单布局)

如何在 PyQt4 的水平布局中拉伸单个小部件?

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

PyQt4 - 自定义小部件类结构?