? QWidget内容边距是指在Qt GUI编程中,控件内文本区域或内容到该控件四边的距离。它分为四个独立的边距:左(left)、上(top)、右(right)和下(bottom)。这些边距允许开发者设置控件内容与控件边缘之间的空白空间,以便更好地布局和视觉呈现。
API
直接显示label,不设置边距
示例代码
'''
内容边距
'''
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("内容边距的设定")
window.resize(500, 500)
#*******内容区域演示*******开始
label = QLabel(window)
label.setText("内容区域===========演示")
label.resize(300, 300)
label.setStyleSheet("background-color: cyan;")
print(label.getContentsMargins())
print(label.contentsRect())
#*******内容区域演示*******结束
window.show()
sys.exit(app.exec_())
结果
如图,窗口直接显示一个label控件,内容区域占整个控件区域的全部,故边距均为0;
内容区域左上角在父控件区域的原点位置,即0,0;
内容区域大小和父控件区域一样大小,即宽高均为300,300。
故文字在内容区域内的显示规则可以看出为:水平靠左,垂直居中。
设置单边距
示例代码
'''
内容边距
'''
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("内容边距的设定")
window.resize(500, 500)
#*******内容区域演示*******开始
label = QLabel(window)
label.setText("内容区域===========演示")
label.resize(300, 300)
label.setStyleSheet("background-color: cyan;")
label.setContentsMargins(100, 200, 0, 0) #设置内容边距
print(label.getContentsMargins())
print(label.contentsRect())
#*******内容区域演示*******结束
window.show()
sys.exit(app.exec_())
结果
如图,由于设置了内容边距:label.setContentsMargins(100, 200, 0, 0) ,故:
内容区域左上角在黄线所指左上角位置,即100,200处;
内容区域大小为黄线区域,即宽高为200,100。
设置双边距
示例代码
'''
内容边距
'''
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("内容边距的设定")
window.resize(500, 500)
#*******内容区域演示*******开始
label = QLabel(window)
label.setText("内容区域===========演示")
label.resize(300, 300)
label.setStyleSheet("background-color: cyan;")
# label.setContentsMargins(100, 200, 0, 0) #设置内容边距
label.setContentsMargins(100, 200, 80, 50) #设置内容边距
print(label.getContentsMargins())
print(label.contentsRect())
#*******内容区域演示*******结束
window.show()
sys.exit(app.exec_())
结果
如图,由于设置了内容边距:label.setContentsMargins(100, 200, 80, 50) ,故:
内容区域左上角在黄线所指左上角位置,即100,200处;
内容区域右下角在蓝线所指左上角位置,即 距离右边距80,距离下边距50 处;
内容区域大小为黄线区域,即宽高为120,50。
同时注意:由于内容区域较小,不足以显示label标签的全部文字内容。
内容边距是指显示内容的区域范围,对应的使用场景:调整控件内容边距, 使得显示更好看。需要注意的是,控件本身应留够对应的大小,内容边距设置才会正常显示。