pyqt5-QFrame边框样式

 

继承  QObject-->QWidget-->QFrame  

是一个基类, 可以选择直接使用,主要是用来控制一些边框样式:例如:凸起、凹下、阴影、线宽

 QFrame对象效果对照图:

import sys
from PyQt5.QtWidgets import QApplication, QWidget,QFrame
from PyQt5.QtCore import QRect

class Demo(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(300,300)
        frame=QFrame(self)  #创建实例
        frame.resize(100,100)
        frame.move(100,50)
        #注意:此时是看不到控件的
        frame.setStyleSheet('background-color:red;')  #设置背景色

        frame.setFrameShape(QFrame.Box)  #设置框架形状
        #QFrame.NoFrame    QFrame什么都没画
        #QFrame.Box=1           QFrame围绕其内容绘制一个框
        #QFrame.Panel=2      QFrame绘制一个面板,使内容显得凸起或凹陷
        #QFrame.HLine      QFrame绘制一条没有框架的水平线(用作分隔符)
        #QFrame.VLine      QFrame绘制一条无框架的垂直线(用作分隔符)
        #QFrame.StyledPanel    绘制一个矩形面板,其外观取决于当前的GUI样式。它可以升起或凹陷
        #QFrame.WinPanel   绘制一个可以像Windows 2000中那样凸起或凹陷的矩形面板。指定此形状可将线宽设置为2像素。WinPanel是为了兼容性而提供的。对于GUI样式独立性,建议使用StyledPanel。

        s=frame.frameShape() #返回框架形状,一个整数值
        print(s)

        frame.setFrameShadow(QFrame.Sunken)  #设置框架阴影
        #QFrame.Plain    框架和内容与周围环境呈现水平;(没有任何3D效果)
        #QFrame.Raised=32   框架和内容出现; 使用当前颜色组的浅色和深色绘制3D凸起线
        #QFrame.Sunken=48   框架和内容出现凹陷; 使用当前颜色组的浅色和深色绘制3D凹陷线
        s=frame.frameShadow() #返回阴影值
        print(s)
        frame.setLineWidth(6)  #设置外线宽度
        s=frame.lineWidth()  #返回外线宽度
        print(s)
        frame.setMidLineWidth(12)  #设置中线宽度
        s=frame.midLineWidth()  #返回中线宽度
        s=frame.frameWidth()  #返回总宽度.注意:内线宽度=外线宽度
        print(s)

        frame.setFrameStyle(QFrame.Box | QFrame.Sunken)  #框架样式=框架形状+框架阴影

        frame.setFrameRect(QRect(20,20,60,60))  #框架矩形
        s=frame.frameRect() #返回框架矩形
        print(s)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = Demo()
    demo.show()
    sys.exit(app.exec_())

 

 

 

天子骄龙

posted @ 2019-05-08 20:42  天子骄龙  阅读(12127)  评论(0编辑  收藏  举报