码迷,mamicode.com
首页 > 其他好文 > 详细

学习pyqt 基础 3

时间:2014-08-17 20:03:13      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:使用   os   for   ar   代码   工作   size   管理   

PyQt4 中的布局管理器

布局管理就是我们在窗口中安排不见位置的方法。布局管理有两种工作方式:绝对定位方式和布局类别方式。一般来说,绝对布局方式用的较少,就像网页,现在不都什么流行响应式布局咩

布局类别方式 (layout classes)

使用布局类别方式的布局管理器比绝对定位方式的布局管理器更加灵活实用。它是窗口部件的首先布局管理方式。最基本的布局类别是QHBoxLayout和QVBoxLayout布局管理方式。

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)
  • 代码都比较容易理解,至于vbox.addStretch()这一方法,意思时加入一个伸缩间隔元素(深入须看文档)

网格布局方式

class GridLayout(QtGui.QWidget):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self)
        self.setWindowTitle(‘grid layout‘)
        names = [‘Cls‘, ‘Bck‘, ‘‘, ‘Close‘, ‘7‘, ‘8‘, ‘9‘, ‘/‘,
        ‘4‘, ‘5‘, ‘6‘, ‘*‘, ‘1‘, ‘2‘, ‘3‘,
        ‘-‘, ‘0‘, ‘.‘, ‘=‘, ‘+‘]
    grid = QtGui.QGridLayout()
    j = 0
    pos = [(0, 0), (0, 1), (0, 2), (0, 3),
    (1, 0), (1, 1), (1, 2), (1, 3),
    (2, 0), (2, 1), (2, 2), (2, 3),
    (3, 0), (3, 1), (3, 2), (3, 3),
    (4, 0), (4, 1), (4, 2), (4, 3)]
    for i in names:
        button = QtGui.QPushButton(i)
        if j == 2:
            grid.addWidget(QtGui.QLabel(‘‘), 0, 2)
        else:
            grid.addWidget(button, pos[j][0], pos[j][1])
        j = j + 1
    self.setLayout(grid)
  • 感觉代码还是比较好懂,书上也没怎么讲,我也就…

学习pyqt 基础 3,布布扣,bubuko.com

学习pyqt 基础 3

标签:使用   os   for   ar   代码   工作   size   管理   

原文地址:http://my.oschina.net/zjuysw/blog/303567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!