QFrame简介
QFrame是一个继承制QWidget的控制框架外形的类,主要是用来控制一些边框样式,、例如凸起、凹下、阴影、线宽等,它既可以直接使用,也可以作为需要边框控制的控件的基类。
QFrame常用方法:
- setFrameShape(): 设置QFrame类窗口的边框,其参数见QFrame.Shape枚举值;
- setFrameShade(): 设置QFrame类窗口的阴影,其参数见QFrame.Shade枚举值;
- setFrameStyle(): 同时设置边框和阴影,参数为QFrame.Shape|QFrame.Shade组合;
- setLineWidth(): 设置外线宽度;
- setMidLineWidth(): 设置中线宽度;
- frameShape(): 获取边框类型;
- frameShade(): 获取边框阴影;
- lineWidth(): 获取外线宽度;
- midLineWidth(): 获取中线宽度;
- frameWidth(): 总宽度。
QFrame.Shape枚举变量及含义:
- QFrame.NoFrame: 0,无边框;
- QFrame.Box: 1,矩形框;
- QFrame.Panel: 2,凸起或者凹下的面板;
- QFrame.WinPanel: 3,Windows 2000风格的面板,可以是凸起或下沉。边框的宽度是2像素。此属性是为了与旧版本的Qt兼容而存在的;
- QFrame.HLine: 4,水平线(用作分隔线);
- QFrame.VLine: 5, 垂直线(用着分隔线);
- QFrame.StyledPanel: 6,根据当前GUI类型,画一个矩形面板,可以凸起或者凹下。
QFrame.Shade枚举变量及含义:
- QFrame.Plain: 0x10, 无阴影;
- QFrame.Raised: 0x20, 面板凸起;
- QFrame.Sunken: 0x30, 面板下沉。
QFrame类继承关系:
测试QFrame
使用QtDesigner创建文件frame.ui,演示QFrame边框,阴影和线宽作用下的各种效果。创建文件qframe.py, 导入frame.ui对应的Python类Ui_Frame,完整代码如下:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QApplication, QWidget, QFrame, QLabel,
QFormLayout, QHBoxLayout)
from Ui_frame import Ui_Frame
class DemoFrame(QWidget):
def __init__(self, parent=None):
super(DemoFrame, self).__init__(parent)
ui = Ui_Frame()
ui.setupUi(self)
# 设置窗口标题
self.setWindowTitle('实战PyQt5: QFrame Demo!')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoFrame()
window.show()
sys.exit(app.exec())
注: frame.ui文件代码太长,这里就不附上了,根据最终运行图,使用Qt Designer 可以方便地设计出整个显示窗口。
最终运行结果见下图:
QFrame参数演示
本文知识点
- 使用QtDesigner设置QFrame边框的各种效果;
- 在QtDesigner中使用QHBoxLayout和QFormLayoutLayout布局。
前一篇: 实战PyQt5: 045-添加资源文件