Python GUI编程网 > PyQt5控件_PyQt5控件方法大全 > QFrame设置边框形状、框架阴影、框架线宽和框架样式
python教程

QFrame设置边框形状、框架阴影、框架线宽和框架样式

发布博客:2022年12月5日 03:23
阅读:212
作者:Python GUI编程网

在前文中我们通过一张图讲解了QFrame设置边框形状、框架阴影、框架线宽和框架样式的原理和操作流程,至于QFrame设置边框形状、框架阴影、框架线宽和框架样式时有哪些属性和值能提供给我们选择,还有哪些方法能帮助我们设置这些样式呢,本文将详细讲解。

在前文中我们通过一张图讲解了QFrame设置边框形状、框架阴影、框架线宽和框架样式的原理和操作流程,至于QFrame设置边框形状、框架阴影、框架线宽和框架样式时有哪些属性和值能提供给我们选择,还有哪些方法能帮助我们设置这些样式呢,本文将详细讲解。

QFrame

整体样式设计,就是先通过lineWidth和middleWidth的大小选择后再通过属性和值的选择来确定QFrame的样式的。也可以只设置部分样式或线宽等效果

一、QFrame框架形状设置

这里注意,QFrame框架永远是矩形的,这里对QFrame框架形状的设置只是显示出来的效果,并不是控件本身的形状。

# QFrame.NoFrame
# QFrame.Box
# QFrame.Panel
# QFrame.HLine
# QFrame.VLine
# QFrame.StyledPanel
# QFrame.WinPanel
qf.setFrameShape(QFrame.HLine)

二、QFrame框架边框阴影设置

框架阴影的设置,有前端基础的可以参考CSS盒子模型,理解方式是一样的。

# QFrame.Plain
# QFrame.Raised
# QFrame.Sunken
qf.setFrameShadow(QFrame.Raised)

三、QFrame边框线宽设置

qf.setLineWidth(15)
qf.setMidLineWidth(20)
print(qf.frameWidth())  # 内线和外线宽度一样

四、QFrame框架样式设置

qf.setFrameStyle(QFrame.Box | QFrame.Raised)

五、QFrame框架矩形设置

qf.setFrameRect(QRect(50, 50, 250, 150))

下面是完整课程代码,大家自己参考一下。

from PyQt5.Qt import *
import sys
 
 class Window(QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle("QFrame - PyQt5中文网")
         self.resize(600, 500)
         self.func_list()
 
     def func_list(self):
         self.func()
 
     def func(self):
         qf = QFrame(self)
         qf.resize(200, 120)
         qf.move(150, 150)
         # qf.setStyleSheet('background-color:green')
 
         # 框架形状
         # QFrame.NoFrame
         # QFrame.Box
         # QFrame.Panel
         # QFrame.HLine
         # QFrame.VLine
         # QFrame.StyledPanel
         # QFrame.WinPanel
         qf.setFrameShape(QFrame.HLine)
 
         # 框架边框阴影
         # QFrame.Plain
         # QFrame.Raised
         # QFrame.Sunken
         qf.setFrameShadow(QFrame.Raised)
 
         # 线宽
         qf.setLineWidth(15)
         qf.setMidLineWidth(20)
         print(qf.frameWidth())  # 内线和外线宽度一样
 
         # 框架样式
         qf.setFrameStyle(QFrame.Box | QFrame.Raised)
 
         # 框架矩形
         qf.setFrameRect(QRect(50, 50, 250, 150))
 
 
 if __name__ == '__main__':
     app = QApplication(sys.argv)
     window = Window()
 
     window.show()
     sys.exit(app.exec_())