zoukankan      html  css  js  c++  java
  • 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)

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

  • 相关阅读:
    小程序swiper组件实现间距轮播
    小程序form静态页面跳转
    批量添加Iconfont图标库图标
    Vant Weapp 有赞小程序UI库 ICON 组件的本地图标路径支持
    $rootScope、$apply、$watch
    EF code first 数据模型创建数据库
    angularjs directive2
    angularjs directive
    angularjs service
    angular repeat
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5328520.html
Copyright © 2011-2022 走看看