QFrame 与 QWidget的区别

发布时间 2023-09-06 22:21:08作者: liushao-AI

父类与子类

1.继承(父类与子类)
概述:多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只需要继承那个类即可
多个类可以称为子类,单独这个类称为父类或者超类,基类等。
子类可以直接访问父类中的非私有的属性和行为。
通过extends关键字让类与类之间产生继承关系。
————————————————
版权声明:本文为CSDN博主「双面沸小虎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JBVHG/article/details/123726542

 

https://blog.51cto.com/u_15588078/6533932

Qt中的QFrame和QWidget是两个不同的控件类,
它们的继承关系如下:

复制
QWidget <- QFrame <- QPushButton,QLabel…

 

QWidget(窗口部件)

QWidget是Qt中所有用户界面元素的基类,用于创建可视化的窗口或控件。
它可以包含其他子部件,并提供了一些基本的绘制和事件处理功能。
QWidget本身并不提供任何特定的外观或布局,因此通常用作其他控件的容器。

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)

widget = QWidget()
widget.resize(250, 150)
widget.setWindowTitle('QWidget Example')
widget.show()

sys.exit(app.exec_())

 

QFrame(帧)

QFrame是QWidget的子类,它提供了一些外观和边框装饰的功能。
它可以用于创建具有边框、阴影和其他外观效果的控件。
QFrame还提供了一些额外的绘制功能,例如绘制线条、背景和图像。
下面是一个QFrame的简单示例:

import sys
from PyQt5.QtWidgets import QApplication, QFrame

app = QApplication(sys.argv)

frame = QFrame()
frame.setFrameStyle(QFrame.Box | QFrame.Raised)
frame.setGeometry(100, 100, 250, 150)
frame.setWindowTitle('QFrame Example')
frame.show()

sys.exit(app.exec_())

 

总结
QWidget用于创建一个基本的窗口部件,而QFrame用于创建一个带有边框的窗口部件。您可以根据需要选择使用QWidget或QFrame,具体取决于您希望控件具有的外观和功能。