QFrame类有四个跟宽度相关的属性,分别是width、lineWidth、midLineWidth以及frameWidth属性。width是整个QFrame的几何图形的宽度,其他三个用于定义一个Frame的边界的宽度。
我们使用一个显示自身的QLable相关数据的图例来说明。
这个案例内,相关属性设置如下:
从该图形派生的自定义类构造方法如下:
class w_mainWin(mainWin.Ui_Form,QtWidgets.QWidget):
def __init__(self):
super(w_mainWin, self).__init__()
self.setupUi(self)
str = f"width={self.info.width()},line={self.info.lineWidth()},midline={self.info.midLineWidth()},panelwidth={self.info.frameWidth()} "
self.info.setText(str)
运行时显示数据及各属性位置标记如下:
本例结论
可以看到在这种设置下,frameWidth = lineWidth*2+midLineWidth
注意:
这个结论是否永远正确呢?答案是否。例如在framShape设置为NoFrame时,lineWidth、midLineWidth都可以设置为大于0,但frameWidth 在这种情况下永远为0。因此本例只是用于解释这三者对应Frame各部分的关系。