Pyqt4

布局

主控件 setlayout

子控件 setlayout

子控件增加scrollarea 需新加一个父widget

father.setlayout->scroall.setwidget->layout.addwidget(scroll)

widget==layout>scroall、childwidget

hbox=QtGui.QHBoxLayout()#水平布局
vbox=QtGui.QvBoxLayout()#垂直布局
#可通过hbox.setAlign()
hbox.addWidget(QtGui.QPushButton('1'),0,QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
hbox.addStretch()#即不缩放

gridLayout=QtGui.QGridLayout()#网格布局

gridLayout.addWidget(QWidget widget, int row, int col, int alignment = 0)
gridLayout.addWidget(QWidget widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, int alignment)

#fromRow:起始行
#fromColumn:起始列
#rowSpan:控件跨越的行
#columnSpan:控件跨越的列
#setSpacing(int spacing)

form = QFormLayout() #表单布局
form.addRow(lb1, le1)#form 2行1列组成
##嵌套布局
class My(QWidget):
    def __init__(self):
        super(My,self).__init__()
        self.initUI()

    def initUI(self):

        all=QHBoxLayout()

        v=QVBoxLayout()
        h=QHBoxLayout()
        g=QGridLayout()

        vw=QWidget()
        hw=QWidget()
        gw=QWidget()

        v.addWidget(QLabel('1'))
        v.addWidget(QLabel('2'))

        h.addWidget(QLabel('3'))
        h.addWidget(QLabel('4'))

        g.addWidget(QLabel('5'),0,0)
        g.addWidget(QLabel('6'),1,0)
        g.addWidget(QLabel('7'),2,0)
        vw.setLayout(v)
        hw.setLayout(h)
        gw.setLayout(g)

        all.addWidget(vw)
        all.addWidget(hw)
        all.addWidget(gw)
        self.setLayout(all)

        all.setSpacing(1)
        self.setGeometry(500,500,300,300)


        self.show()

#spliter可自由操作子组件大小
class My(QWidget):
    def __init__(self):
        super(My,self).__init__()
        self.initUI()

    def initUI(self):
        h=QHBoxLayout(self)#总布局

        left=QFrame()
        center=QFrame()
        right_bottom=QTextEdit()

        left.setFrameShape(QFrame.StyledPanel)#占用
        center.setFrameShape(QFrame.StyledPanel)

        sp1=QSplitter(Qt.Horizontal)#spliter方向
        sp1.addWidget(left)
        sp1.setSizes([50,20])#设置初始大小,会根据你的geometry调整

        sp2=QSplitter(Qt.Vertical)
        sp2.addWidget(center)
        sp2.addWidget(right_bottom)

        sp1.addWidget(sp2)#给sp1增加子类

        h.addWidget(sp1)#h为总的布局

        self.setLayout(h)


        self.setGeometry(400,500,400,400)        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值