PyQt5入门(十八)布局(上)

目录

一.2021,不念过往,不畏将来

二.绝对布局

三.水平盒布局(QHBoxLayout)

四.设置控件的对齐方式

五.垂直盒布局

六.设置布局的伸缩量


一.2021,不念过往,不畏将来

不能颓了!不能颓了!不能颓了!(重要的事情说三遍)

无论过去如何,新的一年的请暂且先将一切烦恼抛之脑后,多陪陪家人,和老友聚聚会,看看家乡,放空自己吧。有时候感觉代码敲久了真的感觉自己性格都变了,越来越冷漠,越来越想脱离身边的环境,越来越喜欢独处,这样有好处,但时间久了也不太好,还是要常和朋友玩玩,做一个真正热爱生活的人,控制好自己的脾气,而不是一个只在别人面前开朗的人。

送给大家一句话:

I leave uncultivated today, was precisely yesterday perishestomorrow which person of the body implored.

译文:  

我荒废的今日,正是昨日殒身之人祈求的明日。

共勉之!

二.绝对布局

代码:

import sys,math
from PyQt5.QtWidgets import *


class AbsoluteLayout(QWidget):
    def __init__(self):
        super(AbsoluteLayout, self).__init__()
        self.setWindowTitle('绝对布局')
        self.resize(300,200)

        self.label1=QLabel('欢迎',self)
        self.label1.move(15,20)

        self.label2=QLabel('学习',self)
        self.label2.move(35,40)

        self.label2 = QLabel('PyQt5', self)
        self.label2.move(55, 80)

if __name__=='__main__':
    app=QApplication(sys.argv)
    main=AbsoluteLayout()
    main.show()
    sys.exit(app.exec_())

运行结果:

三.水平盒布局(QHBoxLayout)

代码:

import sys,math
from PyQt5.QtWidgets import *


class HBoxLayout(QWidget):
    def __init__(self):
        super(HBoxLayout, self).__init__()
        self.setWindowTitle('水平盒布局')
        self.resize(300,200)

        hlayout=QHBoxLayout()
        hlayout.addWidget(QPushButton('按钮1'))
        hlayout.addWidget(QPushButton('按钮2'))
        hlayout.addWidget(QPushButton('按钮3'))
        hlayout.addWidget(QPushButton('按钮4'))
        hlayout.addWidget(QPushButton('按钮5'))
        #设置控件之间的间距
        hlayout.setSpacing(40)

        self.setLayout(hlayout)


if __name__=='__main__':
    app=QApplication(sys.argv)
    main=HBoxLayout()
    main.show()
    sys.exit(app.exec_())

运行结果:

四.设置控件的对齐方式

代码:

import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class HBoxLayout(QWidget):
    def __init__(self):
        super(HBoxLayout, self).__init__()
        self.setWindowTitle('水平盒布局')
        self.resize(300,200)

        hlayout=QHBoxLayout()
        '''
        参数二:拉伸量(几个单位),eg:按钮1后面有2个单位的拉伸,按钮2后面有4个单位的拉伸
        参数三:对齐方式,eg:按钮1是按照左上方对齐,其他以此类推
        '''
        hlayout.addWidget(QPushButton('按钮1'),2,Qt.AlignLeft|Qt.AlignTop)
        hlayout.addWidget(QPushButton('按钮2'),4,Qt.AlignLeft|Qt.AlignTop)
        hlayout.addWidget(QPushButton('按钮3'),1,Qt.AlignLeft|Qt.AlignTop)
        hlayout.addWidget(QPushButton('按钮4'),1,Qt.AlignLeft|Qt.AlignBottom)
        hlayout.addWidget(QPushButton('按钮5'),1,Qt.AlignLeft|Qt.AlignBottom)
        #设置控件之间的间距
        hlayout.setSpacing(40)

        self.setLayout(hlayout)


if __name__=='__main__':
    app=QApplication(sys.argv)
    main=HBoxLayout()
    main.show()
    sys.exit(app.exec_())

运行结果:

五.垂直盒布局

代码:

import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class VBoxLayout(QWidget):
    def __init__(self):
        super(VBoxLayout, self).__init__()
        self.setWindowTitle('垂直盒布局')
        self.resize(300,200)

        hlayout=QVBoxLayout()
        '''
        参数二:拉伸量(几个单位),eg:按钮1后面有2个单位的拉伸,按钮2后面有4个单位的拉伸
        参数三:对齐方式,eg:按钮1是按照左上方对齐,其他以此类推
        '''
        hlayout.addWidget(QPushButton('按钮1'))
        hlayout.addWidget(QPushButton('按钮2'))
        hlayout.addWidget(QPushButton('按钮3'))
        hlayout.addWidget(QPushButton('按钮4'))
        hlayout.addWidget(QPushButton('按钮5'))
        #设置控件之间的间距
        hlayout.setSpacing(40)

        self.setLayout(hlayout)


if __name__=='__main__':
    app=QApplication(sys.argv)
    main=VBoxLayout()
    main.show()
    sys.exit(app.exec_())

运行结果:

六.设置布局的伸缩量

代码1:

import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class Stretch(QWidget):
    def __init__(self):
        super(Stretch, self).__init__()
        self.setWindowTitle('设置伸缩量')
        self.resize(800,100)

        btn1=QPushButton(self)
        btn2 = QPushButton(self)
        btn3 = QPushButton(self)
        btn1.setText('按钮1')
        btn2.setText('按钮2')
        btn3.setText('按钮3')

        layout=QHBoxLayout()
        #伸缩量,在水平布局里有讲过
        layout.addStretch(1) #在按钮前面添加伸缩单位
        layout.addWidget(btn1)

        layout.addStretch(2)
        layout.addWidget(btn2)

        layout.addStretch(3)
        layout.addWidget(btn3)

        self.setLayout(layout)


if __name__=='__main__':
    app=QApplication(sys.argv)
    main=Stretch()
    main.show()
    sys.exit(app.exec_())

运行结果1:

代码2:

下面代码实现的效果是一部分代码在左侧,另一部分在右侧。

import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class Stretch(QWidget):
    def __init__(self):
        super(Stretch, self).__init__()
        self.setWindowTitle('设置伸缩量')
        self.resize(1000,100)

        btn1=QPushButton(self)
        btn2 = QPushButton(self)
        btn3 = QPushButton(self)
        btn4 = QPushButton(self)
        btn5 = QPushButton(self)
        btn1.setText('按钮1')
        btn2.setText('按钮2')
        btn3.setText('按钮3')
        btn4.setText('按钮4')
        btn5.setText('按钮5')

        layout=QHBoxLayout()

        layout.addStretch(0)#伸缩量设置为0,是先排列
        layout.addWidget(btn1)
        layout.addWidget(btn2)
        layout.addWidget(btn3)
        layout.addWidget(btn4)
        layout.addWidget(btn5)

        btnOK=QPushButton(self)
        btnOK.setText('确定')
        btnCancel = QPushButton(self)
        btnCancel.setText('取消')
        layout.addStretch(1)

        layout.addWidget(btnOK)
        layout.addWidget(btnCancel)

        self.setLayout(layout)


if __name__=='__main__':
    app=QApplication(sys.argv)
    main=Stretch()
    main.show()
    sys.exit(app.exec_())

运行结果2:

猜你喜欢

转载自blog.csdn.net/weixin_44593822/article/details/113793037
今日推荐