016.PyQt5_QWidget_大小限定&内容边距

大小限定

  • 设置控件最小尺寸和最大尺寸限定(鼠标拖放窗口时候,最大和最小的限定)

  • 控件.setFixedSize()是设置一个固定的尺寸,不允许通过鼠标拖动改变大小

  • 获取限定大小API

    API 说明
    MinimumWidth() 获取控件最小宽度
    MinimumHeight() 获取控件最小高度
    MinimumSize() 获取控件最小宽度和高度
    MaximumWidth()() 获取控件最大宽度
    MaximumHeight() 获取控件最大宽度
    MaximumSize() 获取控件最大宽度和高度
  • 设置限定大小API

    API 说明
    setMinimumWidth() 设置控件最小宽度
    setMinimumHeight() 设置控件最小高度
    setMinimumSize() 设置控件最小宽度和高度
    setMaximumWidth()() 设置控件最大宽度
    setMaximumHeight() 设置控件最大宽度
    setMaximumSize() 设置控件最大宽度和高度
  • 注意:

    • 当控件设置了限定大小之后,resize设置的时候超出限定值的时候是无效的

内容边距

  • 内容区域:当控件不设置内容边距的时候,内容区域与控件大小一致
    • 016.PyQt5_QWidget_大小限定&内容边距_第1张图片

  • 获取内容区域大小范围:
    控件.contentsRect() 
    返回值:(x, y, width, height)
    x, y:内容区域左上角相对于控件左上角的坐标
    
    • 016.PyQt5_QWidget_大小限定&内容边距_第2张图片

  • 设置内容边距
    setContentsMargins(左, 上, 右, 下)
    
    # 设置内容区域距离控件左边、上边、右边、下边的距离
    
    • 示例
    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    window = QWidget()
    window.setWindowTitle('控件内容边距')
    window.resize(500, 500)
    
    label = QLabel(window)
    label.setText('Hello FengZi')
    label.resize(300, 200)
    label.move(100, 150)
    label.setStyleSheet("background-color:cyan;")
    label.setContentsMargins(100, 50, 0, 0)
    
    print(label.contentsRect())
    
    window.show()
    sys.exit(app.exec_())
    
    • 016.PyQt5_QWidget_大小限定&内容边距_第3张图片

  • 获取内容边距
    getContentsMargins()
    
    返回值:(左边距, 上边距, 右边距, 下边距)
    
    • 示例
    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    window = QWidget()
    window.setWindowTitle('控件内容边距')
    window.resize(500, 500)
    
    label = QLabel(window)
    label.setText('Hello FengZi')
    label.resize(300, 200)
    label.move(100, 150)
    label.setStyleSheet("background-color:cyan;")
    label.setContentsMargins(100, 50, 0, 0)
    
    print('获取内容边距:', label.getContentsMargins())
    print('获取内容区域范围:', label.contentsRect())
    
    window.show()
    sys.exit(app.exec_())
    
    • 016.PyQt5_QWidget_大小限定&内容边距_第4张图片

  • 注意:
    • 如果边距设置过大,导致内容区域太小,文本内容就会被切割掉
    • 016.PyQt5_QWidget_大小限定&内容边距_第5张图片

你可能感兴趣的:(PyQt5,pyqt,qt5,python,开发语言,qt)