• PyQt5快速开发与实战 6.1 好软件的三个维度 && 6.2 PyQt5中的布局管理 && 6.3 PyQt5的绝对位置布局


    PyQt5快速开发与实战

    6. 第6章 PyQt5 布局管理

    6.1 好软件的三个维度

    • 能用

      这是最基本也是最重要的衡量标准,主要用来衡量产品需求是否合理,方向是否正确。

    • 易用

      主要看软件的布局管理架构是否合理,能否快速找到想要的东西,整个交互流程是否清晰,用户在完成某项任务的过程中是否出现卡顿。

    • 好用

      一个友好、人性化的软件界面,会使用户对所使用的软件充满好感。

    三个维度的重要程度:好用 > 易用 > 能用

    6.2 PyQt5中的布局管理

    布局管理:绝对位置和布局类。

    布局方式:水平布局、垂直布局、网格布局、表单布局。

    布局方法:addLayout() 【在布局中插入子布局】、 addWidget()【在布局中插入控件】

    四种布局方式对应四个布局类:

    • 水平布局类(QHBoxLayout),可以把所添加的控件在水平方向上依次排列。
    • 垂直布局类(QVBoxLayout),可以把所添加的控件在垂直方向上依次排列。
    • 网格布局类(QGridLayout),可以把所添加的控件以网格的形式排列。
    • 表单布局类(QFormLayout),可以把所添加的控件以两列的形式排列。

    6.3 PyQt5的绝对位置布局

    绝对位置布局(Absolute Positioning Layout)主要是通过在窗口程序中指定每一个控件的显示坐标和大小来实现的。最开始的坐标在左上角(0,0)的位置,以(0,0)为原点定位窗口某一点的具体位置。显示坐标的表示方法是(x,y),x是横坐标,从左到右变化;y是纵坐标,从上到下变化。在绝对位置布局中,窗口中的控件采用绝对位置进行布局。

    import sys
    from PyQt5.QtWidgets import QWidget , QLabel , QApplication
    
    class Example(QWidget):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            lb1 = QLabel("欢迎你",self)
            lb1.move(15,10)
    
            lb1 = QLabel("丁家雄", self)
            lb1.move(35, 40)
    
            lb1 = QLabel("!", self)
            lb1.move(55, 70)
    
            self.setGeometry(300 , 300 , 320 , 120)
            self.setWindowTitle("绝对位置布局案例")
    
    if __name__ == '__main__':
    
        from pyqt5_plugins.examples.exampleqmlitem import QtCore
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
        app = QApplication(sys.argv)
        myWin = Example()
        myWin.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    在这里插入图片描述

    绝对位置布局的优点:

    • 可以直接定位每个控件的位置。

    绝对位置布局的缺点:

    • 如果改变一个窗口的大小,窗口中控件的大小和位置不会随之改变。
    • 所生成的窗口在不同的操作系统下看起来可能不一样。
    • 在程序中改变字体时可能会破坏布局。
    • 如果修改布局,比如新增一个控件,就必须全部重新布局,既烦琐又费时。
  • 相关阅读:
    101页4万字数字孪生能源互联网智慧能源物联网大数据建设方案
    [附源码]计算机毕业设计JAVA儿童资源教育网站
    架构师04-应用服务间加密设计和实践
    【PLC】三菱plc控件安装 component Movedata had the following error ... Error Number:-119
    JAVA生成安全认证证书
    如何做一份精致的性能测试报告?
    【Vue.js设计与实现】第3章 Vue.js 3 的设计思路
    Webpack中的plugin插件机制
    基于SSM的校园快递代取系统设计与实现
    直播绿幕抠图的例子(绿幕抠图直播实例参考)
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126047737